#reactjs #react-hooks #jestjs
#реагирует на #реагируют-крючки #jestjs
Вопрос:
Код выглядит так: при нажатии кнопки «Отправить» вызов api запускается только при изменении входных значений, в противном случае api не будет вызван:
const [color, setColor] = useState(''); const [price, setPrice] = useState(''); const [amount, setAmount] = useState(''); const getPreviousData = (data) =gt; { const ref = useRef(); useEffect(() =gt; { ref.current = data; }); return ref.current; }; const previousData = getPreviousData({ color, price, amount }); const checkIfDataChanged = () =gt; { if(previousData.color !== color || previousData.price !== price || previousData.amount !== amount) { return true; } return false; }; const handleSubmitButton = (event) =gt; { event.preventDefault(); //if the values are changed, then call api if (checkIfDataChanged()) { dispatch(...) } }; return ( ... lt;Button text="Submit" handleClick={handleSubmitButton} /gt; );
Как издеваться над этим методом checkIfDataChanged() и useRef? Спасибо.
Комментарии:
1. Вам нужно рассказать нам, как вы изменили эти состояния. В противном случае значение всегда будет пустой строкой
''