【发布时间】:2019-11-10 07:01:10
【问题描述】:
我有一个创建三个单选按钮的组件。选择一个应该更新我在别处拥有的上下文存储。
我的状态是这样的:
const styles = {
font: {
size: {
value: '22',
unit: 'px'
},
weight: 'bold',
color: '#663300',
family: 'arial',
align: 'center'
}
};
我这样存储我的状态:
const myContext = useEmailContext();
const { ...styling } = styles;
const [style, setStyle] = useState({ styling });
然后我的组件触发函数onChange:
return (
<RadioButtonGroup
onChange={(event) => {
setIsChecked({ checked: event.target.value });
setStyle({ ...styling, font: { ...styling.font, align: event.target.value } });
console.log(style);
myContext.setStyles(style);
}}
/>
当我点击一个按钮时,函数会触发,但 console.log 显示的是 previous 状态,而不是新更新的状态。同样,我的上下文也会落后一步更新。
这是怎么回事?
【问题讨论】:
标签: javascript reactjs