gpt4 book ai didi

javascript - 以编程方式向元素添加属性

转载 作者:行者123 更新时间:2023-12-03 09:45:58 25 4
gpt4 key购买 nike

好吧,我的问题是如何以编程方式向组件添加 Prop ,这是我的情况,我的 render() 中有这个例如:

              <TextField
name="password"
variant="outlined"
label="Password"
type="password"
className={classNames(styles.signUpInputField, styles.override)}
onChange={this.handleChange}
onBlur={this.validate}
></TextField>

你可以看到这进入了一个验证函数,它很长,所以我只给你一个例子,而不是我的实际验证函数:

  validateEmail = event => {
if (event.target.name !== "email") {
///Set HelperText and error props here
}
};

我想要发生的是修改我的 <TextField> 上的 Prop ,即设置error= truehelperText= "some error here" , 如何在我的函数中执行此操作?

编辑:我需要避免使用状态,因为有多个字段需要专门分配,并且每个字段的多个状态在我看来不是一个干净的方法。

最佳答案

您必须使用 state 而不是 props 添加。

class YourComponent extends React.Component {
constructor(){
state = {
error: false,
helperText: '',
}
}

validateEmail = event => {
if (event.target.name !== "email") {
///Set HelperText and error state here
this.setState({error: true, helperText: "some error here"})
}
};

render (
...

<TextField
name="password"
variant="outlined"
label="Password"
type="password"
className={classNames(styles.signUpInputField, styles.override)}
onChange={this.handleChange}
onBlur={this.validate}
error={this.state.error} // add this new line
/>
<span>{this.state.helperText}</span>

....
);
}

关于javascript - 以编程方式向元素添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58541609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com