Javascript 第一次选择时将选择值设置为null

Javascript 第一次选择时将选择值设置为null,javascript,reactjs,typescript,async-await,react-select,Javascript,Reactjs,Typescript,Async Await,React Select,我正在使用react select创建一个下拉列表: 我的下拉列表选项来自对列表的API调用。我遇到的问题是,当您第一次选择一个选项时,my AccountSelected1表示,当我选择另一个选项时,它仍然为空,而不是开始存储在my AccountSelected1状态。但是,它最终存储的是以前选择的选项 AccountSelected1: any, AccountSelected1: null, handleChangeAccountSelected1 = AccountSelected

我正在使用react select创建一个下拉列表:

我的下拉列表选项来自对列表的API调用。我遇到的问题是,当您第一次选择一个选项时,my AccountSelected1表示,当我选择另一个选项时,它仍然为空,而不是开始存储在my AccountSelected1状态。但是,它最终存储的是以前选择的选项

AccountSelected1: any,

AccountSelected1: null,

handleChangeAccountSelected1 = AccountSelected1 => {
    console.log(AccountSelected1);
    this.setState({ AccountSelected1: AccountSelected1.value}); 
    console.log(`AccountSelected1 set to:`, this.state.AccountSelected1); 
};  

public render(): React.ReactElement<WebappProps> {

    const { AccountSelected1 } =this.state;
        <Select
            value={AccountSelected1}
            onChange={this.handleChangeAccountSelected1} 
            options={this.state.AccountList}
        />
    return (

    )
}

正如你提到的,你没有得到描述。我认为您应该将整个对象设置为状态,您的handleChangeAccountSelected1应该如下所示:

handleChangeAccountSelected1 = AccountSelected1 => {
    console.log('AccountSelected1 BEFORE',this.state.AccountSelected1);
    this.setState({ AccountSelected1 },() => {
        console.log('AccountSelected1 AFTER',this.state.AccountSelected1);
    }); 
};  

this.setState是异步的,如果要查看实际值,需要以以下方式使用它:this.setState{AccountSelected1:AccountSelected1.value},=>{console.logthis.state.AccountSelected1;}@让我试试这个。在该字段的正下方,我将显示所选选项的说明。对于您现在提供的答案,说明为空。以下是我选择的:{this.state.AccountSelected1.Description}这是因为您没有用洞对象更新状态,而是发送它的值:。我向您展示的回调,它只获取状态中的新赋值并记录它。“没别的了。”我明白了。我是新来的。但我明白你的意思。因此,如果我需要它将描述更新为新的赋值,我应该如何处理?如果你能把它作为回答而不是评论。我可以把它设为正确答案。
handleChangeAccountSelected1 = AccountSelected1 => {
    console.log('AccountSelected1 BEFORE',this.state.AccountSelected1);
    this.setState({ AccountSelected1 },() => {
        console.log('AccountSelected1 AFTER',this.state.AccountSelected1);
    }); 
};