【发布时间】:2019-03-17 13:49:41
【问题描述】:
我是 React 的新手,我正在尝试将道具从一个 React 组件传递到另一个组件。请考虑下面的代码并告诉我我可能做错了什么。 正如您会注意到的,我正在尝试使用 this.props.value 来执行此操作,但我在控制台中得到的只是“未定义”。我设法通过将所有 HTML 元素放在一个组件中来运行代码,它运行得非常好。
class Editor extends React.Component {
constructor(props) {
super(props);
this.state = {
input: defaultTxt
};
this.inputChanges = this.inputChanges.bind(this);
}
inputChanges(e) {
this.setState({
input: e.target.value
});
}
render() {
return (
<div>
<div id="editorBar">
Editor
<i className="fa fa-expand expand" />
</div>
<textarea
id="editor"
style={editorStyle}
value={this.state.input}
onChange={this.inputChanges}
placeholder={defaultTxt}
/>
</div>
);
}
}
//preview
class Previewer extends React.Component {
render() {
return (
<div>
<div id="previewerBar">
Preview
<i className="fa fa-expand expand" />
</div>
<div
id="preview"
style={viewerStyle}
dangerouslySetInnerHTML={{ __html: this.props.value }}
/>
</div>
);
}
}
//wrapper
class Wrapper extends React.Component {
render() {
return (
<div id="wrapper">
<Editor />
<Previewer />
</div>
);
}
}
const defaultTxt = `Some default text`;
ReactDOM.render(<Wrapper />, document.getElementById('root'));
【问题讨论】:
-
如果你想在编辑器中输入一些东西并让它出现在预览中,如果你想在两个组件之间共享状态,你真的希望你的状态/状态方法在
Wrapper中。跨度> -
你是如何将 props 传递给 Previewer 组件的?我期待
之类的东西,但找不到。
标签: javascript reactjs components