我在下面有以下JSON
数据结构:
{
Category1 : {
id:1,
subCategory : [
{
pairA: 'JavaScript is?',
pairB: 'JS',
},
{
pairA: 'Hypertext Markup Language is?',
pairB: 'HTML',
},
]
},
Category2 : {
id:2,
subCategory : [
{
pairA: 'Hypetext Transfer Protocol is?',
pairB: 'HTTP',
},
{
pairA: 'File Transfer Protocol is?',
pairB: 'FTP',
},
]
},
}
现在,让我们说我要为Category1
密钥合并以下内容。
const line = {
Category1 : {
id:1,
subCategory : [
{
pairA: 'JavaScript is?',
pairB: 'JS',
},
{
pairA: 'Hypertext Markup Language is?',
pairB: 'HTML',
},
{
pairA: 'Post Office Protocol 3?',
pairB: 'POP3',
},
]
},
}
注意我只为Category1
添加以下内容:
{
pairA: 'Post Office Protocol 3?',
pairB: 'POP3',
},
现在,在我的代码中,我调用了以下操作:
this.props.addLineToCategory("Category1", line)
这是Redux
操作本身:
export function addLineToCategory(key, item) {
console.log("key",key)
console.log("item",item)
return (dispatch) =>
{
AsyncStorage.mergeItem(CATEGORY_KEY, JSON.stringify({
[key]:item
})).then((data)=>{console.log("Data for dispatch",data); dispatch(addEntry(data)) })
.catch((error)=>{console.log('Adding line error : ',error)});
}
}
console.log("key",key)
的结果:
key Category1
console.log("item",item)
的结果:
item Object {
"Category1": Object {
"id":1,
"subCategory": Array [
Object {
{
pairA: 'JavaScript is?',
pairB: 'JS',
},
{
pairA: 'Hypertext Markup Language is?',
pairB: 'HTML',
},
{
pairA: 'Post Office Protocol 3?',
pairB: 'POP3',
},
}
]
}
}
目前的结果与预期一致。但Promise
或AsyncsStorage.mergeItem()
中返回的console.log("Data for dispatch",data)
为null
。我期待所有东西的合并值,但不幸的是它提到null
。顺便说一句,我也是React
和React Native
的新手。