Когда мой флажок отмечен или не отмечен, необходимо установить определенные данные.Прямо сейчас я устанавливаю значение флажка true или false в переменной состояния.Проблема в том, что у него нет функции обратного вызова, как у setState, поэтому, когда я обновляю ее в функции onChange, она не обновляется вовремя, чтобы следующий набор данных обновлялся должным образом.Установка свойств для newEnhanceableData зависит от того, установлен ли флажок или не установлен.Как своевременно обновить проверенное свойство, чтобы следующая строка newEnhanceableData обновляла его свойства?
Вот переменные состояния:
const [checkbox, setCheckbox] = useState({checked: true});
const [enhanceableData, setEnhanceableData] = useState({
name: 'Item Clicked',
properties: {
...defaultProps,
activityLocation: 'Member - RAQ Contact Details',
autopopulated: true,
changeType: 'Add'
}
});
И вот где я обновляю их:
<input
id='raq-sms-text-checkbox'
type='checkbox'
defaultChecked={true}
style={{marginRight: 5}}
onChange={() => {
setCheckbox({checked: !checkbox.checked});
const newEnhanceableData = enhanceableData;
newEnhanceableData.properties.changeType = checkbox.checked ? 'Add' : 'Remove';
newEnhanceableData.properties.autopopulated = false;
setEnhanceableData(newEnhanceableData)
console.log('checkbox: ', checkbox)
console.log('enhanceableData: ', enhanceableData)
sendEnhancedTrackEvent(enhanceableData);
}} />
Как вы можете видеть здесь, проверяемое свойство обновляется после того, как extenableData уже установлен:
![enter image description here](https://i.stack.imgur.com/I3zUt.png)