【发布时间】:2017-11-26 07:05:51
【问题描述】:
class Todo extends React.Component {
constructor(props) {
super(props);
this.state = {
saveText: '',
}
this.handleSaveText = this.handleSaveText.bind(this);
this.displayText = this.displayText.bind(this);
}
handleSaveText(saveText) {
this.setState({
saveText: saveText
})
}
render() {
return (
<div>
<Save saveText = {this.state.saveText}
onSaveTextChange = {this.handleSaveText}
/>
<Display saveText = {this.state.saveText}
/> </div>
);
}
}
class Save extends React.Component {
constructor(props) {
super(props);
this.handleSaveText = this.handleSaveText.bind(this);
}
handleSaveText(e) {
this.props.onSaveTextChange(e.target.value);
}
render() {
return ( <div>
<input type = "text"
value = {
this.props.saveText
}
onChange = {
this.handleSaveText
}
/> <input type = "button"
value = "save"
onClick = {
this.displayText
}
/> </div>
);
}
}
class Display extends React.Component {
render() {
var todos = [];
var todo = this.props.saveText;
//todos.push(todo);
return ( <div> {
todos
} </div>
);
}
}
ReactDOM.render( <Todo / > ,
document.getElementById('root')
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
我是新手,仍然试图弄清楚状态是如何工作的。我正在尝试实现一个简单的待办事项应用程序,该应用程序接受输入并在单击按钮后在屏幕上显示输出。
根据最小的 UI 表示,我将 UI 分为两部分,第一部分包含 Save 类,它有一个输入框和一个按钮。第二个包含一个显示类,它将显示输入框的内容。
我正在将输入框的值存储在状态中。
如何将该状态传递给 Display 类并在屏幕上显示值?
代码笔Link
【问题讨论】:
-
你在 javascript 控制台中得到了什么?如果您在 Display 渲染中
console.log(todo);怎么办? -
没什么,整个 UI 消失了@mkaatman
-
F12,控制台为空,UI消失?
-
Uncaught TypeError: Cannot read property 'bind' of undefined ----我得到@mkaatman
-
是哪一行?你有三个绑定。
标签: javascript html reactjs react-native state