const [firstName, setFirstname] = useState('');
<Textbox
inputId="firstName"
labelName="Given Name"
type="text"
value={firstName}
onChange={setFirstname(event.target.value)}
/>
要更新change event
上的状态。它不会发射。任何想法为什么不呢?我也尝试过此方法。它不会触发handleChange
。
`onChange={(e) => handleChange(e)}`
...
const handleChange = (e) => {
console.log(e);
}
答案 0 :(得分:0)
onChange
属性类型是function,将onChange
作为函数来解决问题
<Textbox
inputId="firstName"
labelName="Given Name"
type="text"
value={firstName}
onChange={event => setFirstname(event.target.value)}
/>
答案 1 :(得分:0)
请找到下面的代码片段,确保绑定要分配给onChange的方法,如下面的代码中的handleChange
:
class NameForm extends React.Component {
constructor(props) {
super(props);
this.state = {value: ''};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
handleSubmit(event) {
alert('A name was submitted: ' + this.state.value);
event.preventDefault();
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
ReactDOM.render(<NameForm />, document.querySelector("#app"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.0.0/react-dom.min.js"></script>
<div id="app"></div>
答案 2 :(得分:0)
解决了它,我遇到的问题是传递onChange Textbox
,其中也包含标签。因此必须将onChange属性作为函数传递
例如
文本框组件:
<label>{labelName}</label>
<input type="text" onChange={onChange} />
父母:
<Textbox onChange={e => setFirstname(e.target.value)}
答案 3 :(得分:0)
名,中间名,姓氏无需使用多个useState
这是更新挂钩中对象的方法
1-更新挂钩中的对象
2重用多个输入处理
function App() {
const [name, setName] = useState({
firstName:'',
surname:''
});
const handleName=e=>{
setName({...name, [e.target.name]: e.target.value})
}
return (
<div className="App">
<h1>{name.firstName}</h1>
<h1>{name.surname}</h1>
<h2>Start editing to see some magic happen!</h2>
<input
type="text"
inputId="firstName"
name="firstName"
value={name.firstName}
onChange={handleName}
/>
<input
type="text"
inputId="surname"
name="surname"
value={name.surname}
onChange={handleName}
/>
</div>
);
}