Estoy usando react-native-searchable-dropdown para mi proyecto de reacción nativa.
Cuando se dispara onTextChange , hago una llamada a mi backend con el texto que ingresa el usuario. Luego configuro los datos que obtengo (matriz de objetos) en el estado:
async inputBrandText (text) { const brands = await SearchForBrands(params); this.setState((state) => { return state.brands = brands }) };En el elemento de elementos hago referencia a esta matriz de estado:
<SearchableDropdown textInputProps={ { placeholder: "", underlineColorAndroid: "transparent", style: { ... }, onTextChange: text => this.inputBrandText(text) } } items={this.state.brands} />Pero los elementos se actualizan con una pulsación de tecla después de que en realidad debería actualizarse. Así que creo que cuando se activa el evento onTextChange, se lee el objeto o la matriz de elementos. Luego cambio el objeto this.state.brands con los datos del backend. Pero luego no se produce ninguna actualización y el objeto de elementos no se actualiza. Por lo tanto, se muestra el objeto de artículos antiguos.
¿Cómo puedo resolver este problema en un componente basado en clases?
¡Gracias!
PD: Este es mi ComponendDidMount :
async componentDidMount () { const brands = await SearchForBrands(params); this.setState((state) => { return state.showBrandSuggestions = brands }) }Prueba de esta manera
Su método componentDidMount debería ser como
async componentDidMount () { const brands = await SearchForBrands(params); this.setState({ showBrandSuggestions: brands }); } Su método inputBrandText debería ser como
async inputBrandText (text) { const brands = await SearchForBrands(params); this.setState({ brands: brands }); };