Javascript 功能设置状态无法访问event.target.value
我对将对象传递到setState没有问题。但当我测试通过一个函数时,我看到的是:Javascript 功能设置状态无法访问event.target.value,javascript,reactjs,Javascript,Reactjs,我对将对象传递到setState没有问题。但当我测试通过一个函数时,我看到的是: class App extends React.Component { // ... update_input_field = input_event => { console.log("input_event.target", input_event.target); const update_state = (state_snapshot, props) => {
class App extends React.Component {
// ...
update_input_field = input_event => {
console.log("input_event.target", input_event.target);
const update_state = (state_snapshot, props) => {
return {
input1: input_event.target.value
};
};
this.setState(update_state);
};
render() {
return (
<form action="">
<input
type="text"
value={this.state.input1}
onChange={e => this.update_input_field(e)}
/>
</form>
);
}
}
有人能告诉我为什么代码会失去对当前代码示例中状态变量(input1.target)的访问权限吗
我能够将目标值记录在update_state中,但无论如何它都会出错。因此,我认为问题在该函数的返回范围内。这些答案应该可以解决您的问题,如果您有任何疑问,请告诉我。是的,它有效,谢谢你的参考。我之前也遇到过同样的问题,我用与新变量相同的方法解决了它,但没有考虑原因。@MayankShukla我们不能事先将输入事件传递给函数const update_state=(state_snapshot,props,input_event)=>@ShubhamAgarwalBhewanewala,我们可以传递,但它不可用,因为react将异步调用该函数,react不会为该参数向该函数传递任何值(input_事件将只是参数名称)。所以,即使传递,函数中的值也将是未定义的。清楚的
TypeError: Cannot read property 'value' of null
App.update_state
src/App.js:45
42 |
43 | const update_state = (state_snapshot, props) => {
44 | return {
> 45 | input1: input_event.target.value
46 | }
47 | };
48 |