您的状态是一个数组.
我在React文档中没有看到提及LinkedStateMixin mixin可以将输入链接到数组索引的任何内容.
可能发生的情况是:
>您的初始状态为[42,54]
>如果您修改索引0处的项目,LinkedStateMixin将创建一个新状态{0:43}
由于setState()不会覆盖现有状态,而是将新状态合并为现有状态(因为一次仅更新一个输入),因此React尝试将JSON对象合并到JS数组中.这很奇怪:)
实际上,您的初始值可以正确显示,因为array [index]和object [key]的工作原理相同.
我认为React目前对数组的支持并不理想,但是值得提出一个pull请求.
现在,您可以尝试使用如下对象:
var Dummy = React.createClass({
mixins: [React.addons.LinkedStateMixin],
getInitialState: function() {
return {0: 42, 1: 54};
},
render: function() {
return
{Object.keys(this.state).map(this.renderItem)}
{JSON.stringify(this.state, null, 2)}
},
renderItem: function(key) {
return
}
});
顺便说一下,您是否尝试过创建自己的LinkedStateMixin来链接到数组索引,您是否已在此处完成:
我只是想知道在React中是否可能有状态= [42,54],然后setState([undefined,55])最终有状态= [42,55],请告诉我们:)