const [ html, setHTML ] = useState('');
const [ script, setScript ] = useState('');
const update = (script, html) => {
setScript(script);
setHTML(html);
};
update('a', 'b'); // actual code in an event handler
Приведенный выше код работает нормально, React Hooks отрисовывает ОДИН РАЗ и объединяет setScript & setHTML;
const [ html, setHTML ] = useState('');
const [ script, setScript ] = useState('');
const update = async (script, html) => {
await new Promise(resolve => setTimeout(resolve, 10));
setScript(script);
setHTML(html);
};
update('a', 'b'); // actual code in an event handler
Приведенный выше код больше не работает, React Hooks отрисовывает ДВАЖДЫ, и он не ' t объединить setScript & set HTML.
Я могу изменить на код:
const [ state, setState ] = useState({
html: '',
script: ''
});
const update = async (script, html) => {
await new Promise(resolve => setTimeout(resolve, 10));
setState({
script,
html
});
};
update('a', 'b'); // actual code in an event handler
Приведенный выше код отображает только ОДИН РАЗ, но в нем есть новая ошибка: курсор в textArea (где скрипт и html go) переместятся в конец textArea вместо того, чтобы оставаться там, где он находится.