Closed jvfd3 closed 10 months ago
Não entendi direito o que era pra fazer, provavelmente era pra que no componente filho usasse um useEffect que lesse um valor externo a ser alterado. Suponho que isso esteja sendo feito aqui:
function DefaultSelect(defaultProps) {
const {
placeHolderText,
isClearable,
options,
setOuterValue,
value,
findCorrectObject,
customProps,
} = defaultProps;
const [currentValue, setCurrentValue] = useState(value);
function updateOuterValue(newValue) {
setCurrentValue(newValue);
setOuterValue(newValue);
}
useEffect(() => {
const correctObject = findCorrectObject ? findCorrectObject(value) : value;
// console.log(value);
setCurrentValue(correctObject);
}, [value]);
return (
<Select
placeholder={placeHolderText}
isClearable={isClearable}
options={options}
onChange={updateOuterValue}
value={currentValue}
{...customProps}
className="mySelectList"
styles={styleWidthFix}
/>
);
}
Dito isso, parece resolvido, após um refactor enorme dos selects
O problema que ocorria era que, caso eu alterasse um item externo, tipo o professor selecionado, os selects das suas informações não eram alterados pois eles tinham um estado interno.
Sinto que em alguns casos, eu estou passando os setConjuntos para os componentes e lá atualizando o conjunto grande. Mas isso só deveria ser atualizado dentro do componente pai com um useEffect lendo mudanças no item. Talvez sendo até específico para cada um dos itens.