我正在尝试建立信用卡信息表。
查看所有反应代码让我觉得我应该这样做
getInitialState: function() {
return {
number: card.number,
exp_month: card.exp_month,
cvc: card.cvc
error: card.error
};
}
基本上克隆了我商店的一部分。 正在做什么的缺点
getInitialState: function() {
return card;
}
卡片可能会在没有反应的情况下改变吗?当卡数据发生变化时,我的事件处理程序是否会设置为State?
答案 0 :(得分:3)
你可以这样做,但我不推荐它。当您显示初始状态时,您的代码将更清晰。稍微解释为什么可以这样做:
getInitialState(source)上的文档:
返回值将用作this.state的初始值。
在setState下提到了source):
不要直接改变this.state,因为之后调用setState()可能会替换你所做的突变。把this.state看作是不可变的。
这意味着您的卡片对象最初用于定义状态,但之后状态会导致不同的生活。
答案 1 :(得分:0)
应该不是问题,只需在安装组件后调用getInitialState
。要对状态进行查询,您仍然需要调用setState
函数,更改card
对象不会帮助