所以,最近我开始了一个新项目。我只使用功能组件(不确定这是否与此问题相关)。
我已经初始化了一个像这样的状态变量
const [selectedFields, setSelectedFields] = useState([]);
在波纹管功能中,我更新状态
let sendMessage = (msg) => {
let id = uuid4();
if (msg.key === 'text') {
msg = {...Fields.Text, action: 'addElement', style: Fields.styles, id};
} else if (msg.key === 'email') {
msg = {...Fields.Email, action: 'addElement', style: Fields.styles, id};
} else if (msg.key === 'firstName') {
msg = {...Fields.FirstName, action: 'addElement', style: Fields.styles, id};
} else if (msg.key === 'lastName') {
msg = {...Fields.LastName, action: 'addElement', style: Fields.styles, id};
} else if (msg.key === 'dob') {
msg = {...Fields.DoB, action: 'addElement', style: Fields.styles, id};
} else if (msg.key === 'tel') {
msg = {...Fields.Phone, action: 'addElement', style: Fields.styles, id};
}
console.log(selectedFields);
setSelectedFields([...selectedFields, msg]);
console.log(selectedFields);
setTimeout(() => {
console.log(selectedFields);
}, 2000);
iframeEl.contentWindow.postMessage(msg, '*');
};
但所有三个console.log
的打印[]
。我究竟做错了什么?TIA。
仅供参考,React 非常新,事实上这是我的第一个项目。