我要进入一个将状态设置为undefined的React项目,我觉得这可能不是最佳实践。如果某事尝试访问未定义状态,是否有可能引发错误?用空值初始化状态会更好吗?也许我在这里做错了假设。
class MyClass extends Component {
constructor(props) {
super(props);
this.state = {
foo: undefined,
bar: undefined,
foobar: undefined
};
}
答案 0 :(得分:4)
与其用state
初始化undefined
,不如用期望的空值初始化它。假设您有:
state:{
orders: undefined,
balance: undefined
}
现在,如果要将orders
呈现为:
{this.state.orders.map(order => {
return <p>{order.details}</p>;
})}
上面的代码将中断,您可能会看到一条错误消息,指出在未定义的地图上找不到地图。因此,为避免此类中断并在屏幕上呈现某些内容,最好使用空值进行初始化,例如:
state:{
orders: [],
balance: 0
}
以上代码不会中断,并且将呈现视图。希望对您有帮助。
答案 1 :(得分:0)
像这样初始化状态会有所不同,例如,当您要遍历所有键时。但是,为清楚起见,在构造函数中初始化所有状态元素是一个好习惯。能够查看状态处理了哪些键,这样更具可读性。