2016-02-13 55 views
1

我正在將Redux整合到我的React Native應用程序中。我的Redux商店是一個數組

我一直無法將狀態傳遞到我的組件,並意識到它,因爲初始狀態始於'0'鍵,例如,

{ 
    '0': { 
    key: 'value' 
    } 
} 

I.e.它似乎是一個數組。

所以,如果我有我的connect出口:

export default connect(state => ({ 
    key: state.key, 
    reduxState: state 
    }), 
    (dispatch) => ({ 
    actions: bindActionCreators(MyActions, dispatch) 
    }) 
)(MyReduxApp); 

key永遠是不確定的,但是,reduxState得到順利通過了。 (當然,不建議派整體狀態下)

根組件:

import React, { Component } from 'react-native'; 
import { createStore, applyMiddleware, combineReducers } from 'redux'; 
import { Provider } from 'react-redux'; 

import DataReducer from '../Reducers/Data'; 
import MyRedApp from './JustTunerApp'; 

const createStoreWithMiddleware = applyMiddleware(thunk)(createStore); 
const reducer = combineReducers([DataReducer]); // ready for more reducers.. 
// const store = createStoreWithMiddleware(reducer); 
const store = createStore(reducer); 

export default class App extends Component { 
    render() { 
    console.log ("store.getState:") 
    console.log (store.getState()) 
    return (
     <Provider store={store}> 
     <MyReduxApp /> 
     </Provider> 
    ); 
    } 
} 

我減速的樣子:

const initialState = { 
    key : "value" 
}; 

export default function key(state = initialState, action = {}) { 
    switch (action.type) { 
    // ... 
    default: 
     return state; 
    } 
} 

是商店返回一個數組?我應該如何將它傳遞給connect方法?

如果我把它作爲key: state[0].key那麼它的工作原理,但這似乎按照權利不給我見過的所有例子..

+0

正如我在減速機中看到的那樣,您不會返回'state'; –

+1

無論從你的根還原器返回的是什麼傳遞給'連接'。如果您使用中間件/存儲增強器,則可能會影響該值。 –

+0

@MichelleTilley謝謝,但我刪除了中間件('redux-thunk'),但仍然一樣。但是你的評論讓我有進一步調查的線索。 – Adamski

回答

1

我應該已經發布的根組件前面......那舉行線索。

const reducer = combineReducers([DataReducer])

應該已經

const reducer = combineReducers({DataReducer})

這裏的教訓是不要急於並在文檔更密切地關注!