Так как в вашем случае вы знаете, что ваша группа пользовательских опций находится в самом конце вашего массива опций, я бы даже исправил меньше кода и улучшил бы его скорость / производительность с помощью следующего кода:
state = {
value: this.props.options[0].options,
options: this.props.options,
hasCreatedOption: this.props.options.length - 1
};
handleCreate = input => (inputValue: any) => {
this.setState({ isLoading: true });
setTimeout(() => {
const { options } = this.state;
const newOption = createOption(inputValue);
options[this.state.hasCreatedOption].options[0] = newOption;
this.setState({
isLoading: false,
options: [...options],
value: newOption,
formatGroupLabel: "new label"
});
input.onChange(newOption);
}, 1000);
};
Когда вы объявляете свою группу пользовательских опций, вы в основном знаете ее индекс и можете напрямую обновлять нужный массив, не просматривая все различные группы, которые у вас могут быть. Вот пример .