React-select 值在第一个 selection 上设置为 null
React-select value set to null on first selection
我正在使用 react-select
构建下拉菜单:https://react-select.com/home
我的下拉选项来自对列表的 API 调用。我遇到的问题是,当你第一次 select 一个选项时,我的 AccountSelected1
说它仍然是 null
当我 select 另一个选项开始存储在我的 AccountSelected1
状态。然而,它最终存储的是之前的 selected 选项。
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 (
)
}
这是我的控制台。如您所见,它第二次开始存储之前的 value
//Console for First selection
{value: "23422", label: "23422", Description: "Account for Jeff"}
GLAccountSelected set to: null
//Console for Second selection
{value: "68755", label: "68755", Description: "Account for Lou"}
GLAccountSelected set to: 23422
如您所述,您没有得到描述。我认为您应该将整个对象设置为状态,您的 handleChangeAccountSelected1
应该如下所示:
handleChangeAccountSelected1 = AccountSelected1 => {
console.log('AccountSelected1 BEFORE',this.state.AccountSelected1);
this.setState({ AccountSelected1 },() => {
console.log('AccountSelected1 AFTER',this.state.AccountSelected1);
});
};
我正在使用 react-select
构建下拉菜单:https://react-select.com/home
我的下拉选项来自对列表的 API 调用。我遇到的问题是,当你第一次 select 一个选项时,我的 AccountSelected1
说它仍然是 null
当我 select 另一个选项开始存储在我的 AccountSelected1
状态。然而,它最终存储的是之前的 selected 选项。
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 (
)
}
这是我的控制台。如您所见,它第二次开始存储之前的 value
//Console for First selection
{value: "23422", label: "23422", Description: "Account for Jeff"}
GLAccountSelected set to: null
//Console for Second selection
{value: "68755", label: "68755", Description: "Account for Lou"}
GLAccountSelected set to: 23422
如您所述,您没有得到描述。我认为您应该将整个对象设置为状态,您的 handleChangeAccountSelected1
应该如下所示:
handleChangeAccountSelected1 = AccountSelected1 => {
console.log('AccountSelected1 BEFORE',this.state.AccountSelected1);
this.setState({ AccountSelected1 },() => {
console.log('AccountSelected1 AFTER',this.state.AccountSelected1);
});
};