Значение React-select установлено равным null при первом выборе - PullRequest
0 голосов
/ 18 июня 2020

Я создаю раскрывающийся список, используя react-select: https://react-select.com/home

Мои варианты раскрывающегося списка исходят из вызова API к списку. Проблема, с которой я сталкиваюсь, заключается в том, что когда вы впервые выбираете параметр, мой AccountSelected1 говорит, что он по-прежнему null, когда я выбираю другой вариант, чем он начинает сохранять в моем состоянии 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 (

    )
}

Вот моя консоль. Как видите, он начинает сохранять второй раз с предыдущим 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

1 Ответ

1 голос
/ 18 июня 2020

Как вы упомянули, вы не получаете описания. Я думаю, вы должны установить весь объект в состояние, ваш handleChangeAccountSelected1 должен выглядеть так:

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