Для достижения своей цели вам необходимо обновить код в двух местах:
- В
fetchCidades
Функция:
Вам необходимо добавить cidadeOrigem: null
ввсе setState
вот так:
async fetchCidadesO() {
if (this.state.estadoOrigem) {
let body = {};
body.estado = this.state.estadoOrigem.value;
let URL = "https://fretesbrasil.herokuapp.com/api/cidadeo";
if (stringify(body) !== "") URL += `?${stringify(body)}`;
//console.log(URL);
const data = await fetch(URL)
.then(response => response.json())
.catch(error => this.setState({ error }));
this.setState({
// ({value: '', label: 'Todos'}
cidadeOrigem: false,
cidadesO: data.data.map(cidade => ({
value: cidade,
label: cidade
}))
});
} else
this.setState({
// ({value: '', label: 'Todos'}
cidadeOrigem: false,
cidadesO: []
});
}
В самом
Select
:
Использование value={cidadeOrigem}
вместо value={this.cidadeOrigem}
<Select
className="basic-single"
placeholder="Cidade de Origem"
onChange={this.toggleCidadeO} //{value => this.setState({ value })}
//defaultValue={cidadesO[0]}
value={cidadeOrigem}
name="cidadeOrigem"
//isDisabled={this.cidadeODisable} don't work
isSearchable={true}
options={cidadesO}
/>
Я очистил ваш код здесь и включил disabled
реквизитычто вы прокомментировали как not working
, так что вы можете проверить вживую здесь .