【发布时间】:2019-07-14 16:36:07
【问题描述】:
我正在尝试将用户输入的值从应用组件传递到 passTicket 组件。我尝试调用道具来传递此状态数据,但在尝试访问它时不断收到未定义的错误。我是新来的反应,如果有人可以帮助我理解我做错了什么,那就太好了。这是我想要实现的一个示例。 这是我的主要组件:
class App extends Component {
constructor(props){
super(props);
this.state = {
ticket:"",
};
this.changeTicket = this.changeTicket.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
this.keyPress = this.keyPress.bind(this);
}
changeTicket(e){
this.setState({
ticket : e.target.value,
})
}
handleSubmit(){
this.setState({
updatedTicket: this.state.ticket
});
}
keyPress(e){
if (e.keyCode ===13){
this.handleSubmit();
}
}
render() {
return (
<div className="App">
<header className="App-header">
<input type="text" placeholder="ENTER TICKET NUMBER" value={this.state.ticket} onKeyDown={this.keyPress} onChange={this.changeTicket}/>
</header>
</div>
);
}
}
并且我希望能够将 updatedTicket 值存储在我可以在我的 PassTicket 组件中使用的变量中。这是我迄今为止尝试过的,但它发生的错误如下Uncaught TypeError: Cannot read property 'updatedTicket' of undefined
这是我的第二个组件的样子:
class PassTicket extends Component {
transferredTicket(){
const myTicket = this.props.state.updatedTicket;
return myTicket
}
render() {
return (
<p>{this.transferredTicket()}</p>
);
}
}
【问题讨论】:
-
你在哪里实际实例化
PassTicket?为什么不将updatedTicket作为道具传递下去? -
这就是我认为我对 this.prop.state.updatedTicket 所做的。我现在有一些严重的隧道视野。我确定我在做一些傻事。
标签: javascript reactjs react-redux