Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当前值未反映在选择组件中_Javascript_Html_Reactjs - Fatal编程技术网

Javascript 当前值未反映在选择组件中

Javascript 当前值未反映在选择组件中,javascript,html,reactjs,Javascript,Html,Reactjs,我在react中创建了一个自定义选择。每当我尝试从选项中选择一个值时,它只反映旧值,例如我从下拉手柄中选择了4。更改函数将从e.target.value中获得值1,但下拉框将显示更改后的值“4” module.exports = React.createClass({ getInitialState:function(){ return {selectValue:'1'}; }, handleChange:function(e){ this

我在react中创建了一个自定义选择。每当我尝试从选项中选择一个值时,它只反映旧值,例如我从下拉手柄中选择了4。更改函数将从e.target.value中获得值1,但下拉框将显示更改后的值“4”

module.exports = React.createClass({
    getInitialState:function(){
        return {selectValue:'1'};
    },
    handleChange:function(e){
        this.setState({selectValue:e.target.value});
        this.props.callbackParent(this.state.selectValue);
    },
    render: function() {
        return (
        <div>
         <select value={this.state.selectValue}
            onChange={this.handleChange} >
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
          </select>
        </div>
        );
    }
});
module.exports=React.createClass({
getInitialState:函数(){
返回{selectValue:'1'};
},
handleChange:函数(e){
this.setState({selectValue:e.target.value});
this.props.callbackParent(this.state.selectValue);
},
render:function(){
返回(
1.
2.
3.
4.
5.
6.
7.
8.
9
10
);
}
});

除了props.callbackParent的类型错误外,此选项正常工作:

HTML:


JS:

var Hello=React.createClass({
render:function(){
返回Hello{this.props.name};
}
});
ReactDOM.render(
,
document.getElementById('容器')
);
您正在尝试从状态(
this.state
)获取值(
selectValue
),但它尚未完成,在这种情况下,您可以使用callback作为中的第二个参数,如下所示

handleChange: function(e) {
  this.setState({selectValue:e.target.value}, function () {
    this.props.callbackParent(this.state.selectValue);
  });
}

第二个(可选)参数是一个回调函数,它将 完成
setState
并重新呈现组件后执行

var Hello = React.createClass({
    render: function() {
        return <div>Hello {this.props.name}</div>;
    }
});

ReactDOM.render(
    <Hello name="World" />,
    document.getElementById('container')
);
handleChange: function(e) {
  this.setState({selectValue:e.target.value}, function () {
    this.props.callbackParent(this.state.selectValue);
  });
}