【发布时间】:2019-11-29 02:34:07
【问题描述】:
当我尝试将 React 15.X 升级到 React 16.X 时出现此问题:
let style = {
width:12
};
class Box extends React.Component {
constructor(props) {
super(props);
}
render() {
console.log(Object.getOwnPropertyDescriptor(style,'width'))
style.width = 96;
return (
<div style={style}>
</div>
);
}
}
输出:
- {值:12,可写:true,可枚举:true,可配置:true}
- {值:12,可写:false,可枚举:true,可配置:false}
- {值:12,可写:false,可枚举:true,可配置:false}
有人知道为什么“可写”会变成假吗?
【问题讨论】:
-
什么是
onChange,没有定义。你为什么要直接改变一个道具?我不确定为什么它在第一次渲染后变为 false,但它可能不应该是可写的,它是一个道具。 -
props 是不可变的,如果你想在直播中更新样式,请尝试在 componentDidMount() 中使用 state
-
我编辑了这个问题。对不起,我复制了错误的代码
标签: javascript reactjs