Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';someProperty';在反应中未定义的_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript 无法读取属性';someProperty';在反应中未定义的

Javascript 无法读取属性';someProperty';在反应中未定义的,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我正在开发一个应用程序,在这个应用程序中,我使用状态将Navlink中的变量值从一个组件传递到另一个组件,然后在输入字段中加载这些接收到的值,然后单击另一个组件中的submit按钮来处理值。我的值被正确接收,并在我发出警报时正确显示。但当我点击submit按钮时,它给出了错误,指向构造函数 TypeError:无法读取未定义的属性“id” 这是我的密码 类父级扩展React.Component{ 建造师(道具){ 超级(道具); this.state={id:2} } render(){ 返回

我正在开发一个应用程序,在这个应用程序中,我使用状态将Navlink中的变量值从一个组件传递到另一个组件,然后在输入字段中加载这些接收到的值,然后单击另一个组件中的submit按钮来处理值。我的值被正确接收,并在我发出警报时正确显示。但当我点击submit按钮时,它给出了错误,指向构造函数

TypeError:无法读取未定义的属性“id”

这是我的密码

类父级扩展React.Component{
建造师(道具){
超级(道具);
this.state={id:2}
} 
render(){
返回(
编辑
)
)
}
我在哪里收到这些值

类子级扩展React.Component{
建造师(道具){
超级(道具);
this.state={id:this.props.location.state.id}
警报(this.props.location.state.id)//工作正常
}
setId(e){
this.setState({id:e.target.value})
}
addOrEdit(){//给出错误
警报(this.state.id)
//做点什么
}
render(){
返回(
身份证件

) } }


应该修复在
location
set之前,此组件在没有此上下文的情况下调用或执行此行所导致的问题。 (假设您使用路由器的
使定位道具存在…)


<>无论如何,与你的问题没有直接关系,在构造函数中从道具上设置状态初始值,考虑生命周期中的操纵状态,或者不使用状态,直接引用道具

< P>,我建议只使用SARDD和AdOrdIt的箭头函数。
addOrEdit = (e) => {
    // ...
}
只要叫他们:

onChange={this.setId}
onClick={this.addOrEdit}

同时,您也从prop派生state。 最好直接使用道具


尝试向您的孩子添加
this.addOrEdit=this.addOrEdit.bind(this);
constructor@PeterCoilingridge相同错误。无任何更改onChange属性应为
onChange={this.addOrEdit}
否则,您将使用不同的
重新绑定此
@PeterCollingridge:不正确。
应该是运行
render
方法时的组件。在您的问题文本中,您说错误在构造函数中,但您的注释说它在
addOrEdit
中。它是哪一行?
onChange={this.setId}
onClick={this.addOrEdit}