Entonces tengo un state de opciones cargadas dinámicamente (llamada API):
// myOptions will be loaded with data after API call returned // and will re-render the component using `useEffect` const [myOptions, setMyOptions] = useState() Estoy cargando react-select así y todo funciona bien, excepto el defaultValue :
<AsyncCreatableSelect defaultValue={myOptions?.[0]} defaultOptions={myOptions} onChange={selectHandler} isMulti isSearchable /> myOptions?.[0] es solo un ejemplo. Quiero que se apruebe con apoyos, pero el punto aquí es que simplemente no funciona de esta manera. Sin embargo, funcionará si paso el objeto de inmediato cuando el componente se carga por primera vez, así:
<AsyncCreatableSelect defaultValue={ { _id: "myLongId", value: "Some Value", label: "someLabel", }, } defaultOptions={myOptions} onChange={selectHandler} isMulti isSearchable />Pero obviamente no quiero hacerlo duro, sino usarlo dinámicamente con los datos devueltos de la llamada API y los accesorios pasados.
Además, myOptions?.[0] (cuando se cumple) y el objeto ( {_id: "myLongId", value: "Some Value",label: "someLabel",} ) son exactamente iguales, lo que significa que son === true . Entonces, la única razón para que no funcione es algún tipo de memorización al final de reaccionar-seleccionar. Esto es una locura... debería activarse en el cambio de utilería.
Estoy seguro de que no soy el único que se ocupa de esto, ¿puede compartir su solución a esto, por favor?
Gracias.