2017-09-13 50 views
0

我剛剛開始使用React/Redux,並在測試時使用Redux正常工作。- 如何在此頂層文件中訪問我的容器/商店?

但是,我無法將其連接到我的實際應用程序。

我假設我應該使用connect(),但我不知道如何/在哪裏。

// libraries 
import React from 'react'; 
import ReactDOM from 'react-dom'; 

// redux 
import { Provider } from 'react-redux'; 
import store from './redux/store'; 
import './redux/test.js'; 
import {connect} from 'react-redux' 


class App extends React.Component { 

    constructor(props, test) { 
    super(props); 
    } 

    render() { 
    return (
     <div id = 'contents'> 
     </div> 
    ) 
    } 
} 

const app = document.getElementById('app'); 
ReactDOM.render(

    <Provider store={store}> 
    <App></App> 
    </Provider> 

, app); 
+1

您是否閱讀過文檔? http://redux.js.org/ – Kafo

回答

1

您需要connect您的組件應用程序。

例如,讓我們假設你在你的店裏有你的減速命名的減速值:

// libraries 
import React from 'react'; 
import ReactDOM from 'react-dom'; 

// redux 
import { Provider } from 'react-redux'; 
import store from './redux/store'; 
import './redux/test.js'; 
import {connect} from 'react-redux' 


class App extends React.Component { 

    constructor(props, test) { 
    super(props); 
    } 

    render() { 
    // You can use data from props 
    return (
     <div id = 'contents'> 
     {this.props.data} 
     </div> 
    ) 
    } 
} 

const mapStateToProps = (state, ownProps) => { 
    // Bind your store state to the component data 
    return { 
    date: state.reducer.value, 
    }; 
} 

const mapDispatchToProps = (dispatch) => { 
    // Bind actions to your component 
} 

const ConnectedApp = connect(mapStateToProps, mapDispatchToProps)(App); 

const app = document.getElementById('app'); 
ReactDOM.render(

    <Provider store={store}> 
    <ConnectedApp></ConnectedApp > 
    </Provider> 

, app); 
+0

mapStateToProps是一個函數,用於將數據從存儲狀態獲取到組件可以使用的json對象。你可以在你的例子中添加你的reducer,我會告訴你。 –

+0

不可以。您將從商店獲取想要的數據,並通過'connect'將它們傳遞給組件。組件從不直接操作商店。 –

1

所以你需要什麼是包裝應用與連接返回的功能:

const AppWithRedux = connect()(App); 
ReactDOM.render(

<Provider store={store}> 
    <AppWithRedux/> 
</Provider>, 
app); 

但你可以找到一個很好的例子,說明如何在以下鏈接中使用redux與react:

http://redux.js.org/docs/basics/UsageWithReact.html

+0

'錯誤:你必須傳遞一個組件到連接返回的函數' –

+0

y我只是快速輸入,這就是爲什麼我指出了這個例子...我認爲你有我的觀點... –

+0

所以我不必須傳遞任何東西到'connect()'?我寧願不去,但我需要訪問'store.dispatch()'和'store.getState()' –

相關問題