Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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
Html Select OnChange事件返回上一个值_Html_Reactjs - Fatal编程技术网

Html Select OnChange事件返回上一个值

Html Select OnChange事件返回上一个值,html,reactjs,Html,Reactjs,我在选择更改目标值时遇到问题。它返回以前选择的选项。也许有人能告诉我哪里出了错 change = (event) => { this.setState({value: event.target.value}); this.props.handleType(this.state.value); console.log(this.state.value); }; <Select onChange={this.change} value={this.state.

我在选择更改目标值时遇到问题。它返回以前选择的选项。也许有人能告诉我哪里出了错

change = (event) => {
    this.setState({value: event.target.value});
    this.props.handleType(this.state.value);
    console.log(this.state.value);
};

 <Select onChange={this.change} value={this.state.value}>
       <option value="" hidden>Type</option>
       <option value="1">Audi</option>
       <option value="2">BMW</option>
       <option value="3">Citroen</option>
       <option value="4">Ford</option>
     </Select>
change=(事件)=>{
this.setState({value:event.target.value});
this.props.handleType(this.state.value);
console.log(this.state.value);
};
类型
奥迪
宝马
雪铁龙
河流浅水处

我的目标是获取所选值。

因为
this.setState
是一个异步操作,
this.setState
立即返回

因此,在
this.setState
之后,
this.props.handleType
在更新为
event.target.value
之前使用了
this.state.value

change = (event) => {
    const { value } = event.target;
    this.setState({ value });
    this.props.handleType(value);
    console.log(value);
};
要使用新的状态值,您需要在this.setState的中处理它

change = (event) => {
    this.setState({value: event.target.value}, () => {
      this.props.handleType(this.state.value);
      console.log(this.state.value);
   });
};
或者,您可以简单地使用
event.target.value

change = (event) => {
    const { value } = event.target;
    this.setState({ value });
    this.props.handleType(value);
    console.log(value);
};

由于
this.setState
是一个异步操作,
this.setState
立即返回

因此,在
this.setState
之后,
this.props.handleType
在更新为
event.target.value
之前使用了
this.state.value

change = (event) => {
    const { value } = event.target;
    this.setState({ value });
    this.props.handleType(value);
    console.log(value);
};
要使用新的状态值,您需要在this.setState的中处理它

change = (event) => {
    this.setState({value: event.target.value}, () => {
      this.props.handleType(this.state.value);
      console.log(this.state.value);
   });
};
或者,您可以简单地使用
event.target.value

change = (event) => {
    const { value } = event.target;
    this.setState({ value });
    this.props.handleType(value);
    console.log(value);
};

不客气。这是一个常见的错误,所以希望其他人能从你的问题中受益,不客气。这是一个常见的错误,希望其他人能从你的问题中受益