修改
对于任何以为我要传递JSON.parse()
数组/对象的人……我要传递一个字符串。我在控制台输出中加上了注释,以为这就是我所做的。还要检查屏幕显示以将obj.data
与newData
进行比较...如果我分配了一个,则相反的情况已损坏。
原始
所以我有这段代码摘录。随后进行的nx.Equip.op()
调用是内部$ajax
操作之后的操作。
我的问题是,当我将data
成员(它是一个数组)分配给任何对象时……并通过this.setState({storagePayments: obj.data})
或this.state.storagePayments = obj.data
进行设置。 ..当我登录到控制台时...表明它是一系列功能...而不是原始字段。如果我直接将JSON.parse(data).data
登录到控制台...这将显示正确的数组。我已经尝试了各种各样的方法...例如将其复制到新的数组中...就像在例外中一样。无论我分配的是哪个函数,它都是函数数组,而相反的是正确的字段数组。
似乎是一个矛盾……不是我做错了什么……但我显然可能会缺少一些东西。在下面,当我登录obj.data
和newData
时,有一个控制台的片段,这是我在代码片段中明确将新元素推送到的数组。 newData
显示为函数数组,而obj.data具有我需要的正确数组。
如果我除了将storagePayments
设置为obj.data
而不是newData
以外,什么都不做...则obj.data
成为函数数组...并且它们切换角色。起初我以为可能是React ...所以我分配给this.state.storagePayments
,发生了同样的事情。更不用说怪异性还是在赋值之前记录的原始变量中……但是它总是与最终赋值的那个匹配。
nextPromise = nextPromise.then(() => {
return nx.Equip.op({
endpoint: '/data',
method: 'GET',
data: {
data_type: Payment.data_type,
response_type: 'all',
filter_by: `HEX(payment_guid) IN (${storageGuids})`,
start_index: 0,
number_of_records: 1000000
}
}).then(data => {
var obj = JSON.parse(data);
var newData = [];
for(var i = 0; i < obj.data.length; i++)
newData.push(obj.data[i]);
this.setState({storagePayments: newData});
});
});
答案 0 :(得分:1)
当对字符串进行操作并将其转换为对象/数组时,您正在传递JSON.parse()一个数组。您将不得不遍历数组并将索引数据传递给JSON.parse()。