Javascript 反应设置输入';s值
我在许多React教程中看到了有关管理输入值的内容。以下模式: 在将道具传递给输入组件的父级上,handleInputText设置anyValue的状态:Javascript 反应设置输入';s值,javascript,reactjs,Javascript,Reactjs,我在许多React教程中看到了有关管理输入值的内容。以下模式: 在将道具传递给输入组件的父级上,handleInputText设置anyValue的状态: <InputComponent textValue={this.state.anyValue} onInputtingText={this.handleInputText}/> 现在,我的发现是,我尝试在父母设置状态时记录它,它记录初始状态。以下是一些初步结论: 每当事件触发时,输入的值不是InputComponent的当前值。
<InputComponent textValue={this.state.anyValue} onInputtingText={this.handleInputText}/>
现在,我的发现是,我尝试在父母设置状态时记录它,它记录初始状态。以下是一些初步结论:
提前感谢。您可以在
这个.handleInputText中设置状态,并在输入组件中调用它
var App = React.createClass({
getInitialState() {
return { anyValue: '' };
},
handleInputtingText(value) {
this.setState({ anyValue: value });
},
render() {
return <div>
<p>{ this.state.anyValue }</p>
<InputComponent
textValue={ this.state.anyValue }
onInputtingText={ this.handleInputtingText }
/>
</div>
}
});
var InputComponent = React.createClass({
handleInput(e) {
this.props.onInputtingText(e.target.value);
},
render: function() {
return <input
type="text"
value={this.props.textValue}
onChange={ this.handleInput }
/>;
}
});
var-App=React.createClass({
getInitialState(){
返回{anyValue:''};
},
HandleInputingText(值){
this.setState({anyValue:value});
},
render(){
返回
{this.state.anyValue}
}
});
var InputComponent=React.createClass({
手动输入(e){
this.props.onInputText(即target.value);
},
render:function(){
返回;
}
});
是的,同样如此,我刚刚发现,每当我尝试在设置时记录状态值时,它都会返回初始值。为什么会这样?我下载了React调试器,状态设置为正确的值。谢谢
handleInput(){
this.setState(this.refs.inputRef.value)
}
var App = React.createClass({
getInitialState() {
return { anyValue: '' };
},
handleInputtingText(value) {
this.setState({ anyValue: value });
},
render() {
return <div>
<p>{ this.state.anyValue }</p>
<InputComponent
textValue={ this.state.anyValue }
onInputtingText={ this.handleInputtingText }
/>
</div>
}
});
var InputComponent = React.createClass({
handleInput(e) {
this.props.onInputtingText(e.target.value);
},
render: function() {
return <input
type="text"
value={this.props.textValue}
onChange={ this.handleInput }
/>;
}
});