【发布时间】:2018-07-20 00:04:49
【问题描述】:
嗨,我最近刚开始学习 ReactJS,一直在玩导入和导出功能,例如这是应用程序的结构,3 个单独的文件父级和 2 个子级;如何将状态从 InputArea 导出到 DisplayArea?
父组件
import React, { Component } from 'react';
import DisplayArea from './DisplayArea';
import InputArea from './InputArea';
class App extends Component {
render() {
return (
<div id="wrapper" className="App">
<DisplayArea />
<InputArea />
</div>
);
}
}
export default App;
子 1 组件
import React, { Component } from 'react';
import InputArea from './InputArea';
class DisplayArea extends Component {
constructor(props){
super(props);
}
render() {
return (
<div className="column">
<div className="col-body">
<div id="preview">{ How to display contents here? }</div>
</div>
</div>
);
}
}
export default DisplayArea;
子 2 组件
import React, { Component } from 'react';
class InputArea extends Component {
constructor(props){
super(props);
this.state = {
content: ''
}
this.handleChange = this.handleChange.bind(this);
}
handleChange(e){
e.preventDefault();
this.setState({
content: e.target.value
})
}
render() {
return (
<div className="column">
<div className="col-body">
<textarea id="editor" placeholder="Enter text here" onChange={this.handleChange}></textarea>
</div>
</div>
);
}
}
export default InputArea;
【问题讨论】:
-
这是一个带有react的基本概念。除非你使用像 Redux 这样的状态管理,否则传递 props 是一种单向方法。我已经在这里回答了这个==> stackoverflow.com/questions/47858242/…您应该尽量避免像您正在做的那样使用从一个孩子到另一个侧面的道具,要么是第二个孩子的下一个孩子,要么使用状态管理。无论您的选择如何,您都需要创建一个“updateParent”函数,您可以在我之前的回答中找到该函数。
标签: javascript reactjs