嵌套到数组中的结果

时间:2017-09-22 15:09:42

标签: reactjs react-native redux react-redux

我正在使用ReactNative + React Redux。

我的减速机:

const initialState = {
    categories: []
}


case "FETCHING_SUCCESS":
      return {
        ...state,
        isAdding: false,
        categories: [...state.categories, action.data]
      }

我收到的数据是:

[
 {id:1, name: 'name01', someId: 11}, 
 {id:2, name: 'name02', someId: 22}, 
 {id:3, name: 'name03', someId: 33}
]

如果我这样做:

case "FETCHING_SUCCESS":
      return {
        ...state,
        isAdding: false,
        categories: action.data     // <= Notice This
      }

我得到的数据很好 - console.log(&#34; CATEGORIES:&#34;,this.props.caregories); :

enter image description here

但我想将收到的数据附加到现有数据中。所以,如果我这样做:

categories: [...state.categories, action.data]

我将一个数组放入一个数组中:

enter image description here

在进一步的API调用中,多个数组嵌套在主要数组中。

我该如何解决这个问题?我只想要主数组而不是嵌套在主数组中的数组。我可以map并显示主数组中的数据。我不明白我应该如何附加数据。

非常感谢。

2 个答案:

答案 0 :(得分:1)

我认为你打算做的是categories: [...state.categories, ...action.data]

答案 1 :(得分:1)

你的密码应该是:

import * as request from 'request';

export function inputWelcome(app: any) {

    //I WANT SESSION ID HERE

    console.log("app.conversation(): ", app.conversation());
    console.log("app.AppRequest: ", app.AppRequest);
    console.log("app.AppRequest.conversation: ", app.AppRequest.conversation);

    console.log("app.AppRequest(): ", app.AppRequest());
    console.log("app.AppRequest().conversation: ", app.AppRequest().conversation);


    console.log("app.getUser().accessToken;: ", app.getUser().accessToken)
    const accessToken = app.getUser().accessToken;

// MAKE USER ENTITY WITH THESE DATA:
//    {
//     "sessionId": "current conversation id here",
//     "entities": [
//         {
//             "name": "option1",
//             "entries": [
//                 {
//                     "value": "option1",
//                     "synonyms": [
//                         "first",
//                         "option one"
//                     ]
//                 }
//             ]
//         },
//         {
//             "name": "option2",
//             "entries": [
//                 {
//                     "value": "option2",
//                     "synonyms": [
//                         "second one",
//                         "second option"
//                     ]
//                 }
//             ]
//         },
//         {
//             "name": "option3",
//             "entries": [
//                 {
//                     "value": "option3",
//                     "synonyms": [
//                         "third one",
//                         "third option"
//                     ]
//                 }
//             ]
//         },
//         {
//             "name": "help",
//             "entries": [
//                 {
//                     "value": "help",
//                     "synonyms": [
//                         "help",
//                         "need help",
//                         "ditn't get",
//                         "need support"
//                     ]
//                 }
//             ]
//         }
//     ]
// }
//
// AND THEN ASK THE USER WITH SUGGESTION CHIPS    

    app.ask(app.buildRichResponse()
       .addSimpleResponse({
            speech: `Hi you can start with these things`,
            displayText: `Hi you can start with these things`
        })
        .addSuggestions(['option1', 'option2', 'option3', 'Help'])                        
    )
}

检查此代码段:)

case "FETCHING_SUCCESS":
      let newCategories = [...state.categories, ...action.data];
      return {
        ...state,
        isAdding: false,
        categories: newCategories
      }