我试图创建一个受控制的文本区域。反应道具undefined里面的构造和存在渲染
class TextArea extends React.Component {
constructor(props) {
super(props);
this.state= {
text: this.props.initial
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
//some handle
}
render() {
return (
<textarea
value={this.state.text}
placeholder={this.props.initial}
onChange={this.handleChange}
/>
);
}
}
出于某种原因,如果我在构造函数中,我得到一个未定义的CONSOLE.LOG this.props.initial
。
但占位符工作。
我想要做的是放弃占位符,并设置一个初始值,以便用户可以编辑,复制和交互。 (基本上是正常的文本,而不是占位符,但我不能这样做,因为它不起作用)
我在做什么错了?
编辑: ,我路过props.initial
到textarea的方式:
<TextArea
initial={this.state.json.initial}
text={this.state.json.text}
changeHandler={this.handleChange}
/>
我正在从$ .getJSON调用中的JSON和我认为JSON通话结束前,textarea的被渲染。是否有任何方法只能在componentWillMount函数之后运行渲染函数?
从'this.props'中删除'this'并且它应该按预期工作。 – mersocarlin
你不能在你的构造函数中使用'props.initial'吗? – Walk
超级建立这个正确的,所以这不应该改变任何东西 – Axnyff