javascript - 如何动态添加元素属性

标签 javascript reactjs react-native

我正在开发reactjs应用程序,并且我一直致力于动态添加属性。

我有电子邮件输入字段和提交按钮,当单击提交按钮时,如果电子邮件无效,我想添加错误消息。这是我到目前为止所做的...

<TextField label='Email'/>
<Button onPress()=>this.doSomethingFunction() />

我想要 doSomethingfunction() 动态添加错误属性,如下

 <TextField label='Email' error="invalid entry"/>

我面临的问题是,如果我保留错误属性,如上所示,错误消息甚至在用户输入电子邮件地址之前就会出现。我想到的解决方案是在发现该属性是否无效后添加该属性,但我不知道如何动态地执行此操作。

最佳答案

您可以使用状态变量来更新 UI。所以请尝试执行以下操作:

constructor(props) {
  super(props);
  this.state = {
    validStatus: 0 // initial state, 1: valid state, 2: invalid state
  } 
}

doSomethingFunction = () => {
  ...
  if (email is valid) {
    this.setState({ validStatus: 1 });
  } else {
    this.setState({ validStatus: 2 });
  }
  ...
}

render() {
  const { validStatus } = this.state;
  return (
    <View>
      ...
      {validStatus !== 2 && <TextField label='Email'/>
        <Button onPress()=>this.doSomethingFunction() />}
      {validStatus === 2 && <TextField label='Email' error="invalid entry"/>}
      ...
    </View
  );
}

关于javascript - 如何动态添加元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452891/

相关文章:

javascript - 查找对象和数组中的嵌套值之间的匹配

javascript - 文本框在打字时失去焦点

javascript - learnyounode node.js 教程的 console.log 打印语句顺序错误

react-native - 无法在 SafeAreaView 中包装导航器

javascript - 如何使用Promise保存多个mongodb集合?

reactjs - VueJs 2 与 Vuex 对比 React 与 Redux

ReactJS:如何杀死 `serve -s build`

javascript - 如何在不创建新函数的情况下将参数传递给 React + Typescript 中的回调?

android - 如何在 React Native 中删除 View

android - 如何在特定位置的图像顶部设置 react native 图像