2015-09-25 25 views
13

मैं एक आवेदन संरचना है में दुकान लगाने में असमर्थ कनेक्ट कि ज्यादातर की नकल करता है redux real-world उदाहरण लेकिन अतीत यह त्रुटि मिलती नहीं मिल सकता है:प्रतिक्रिया-redux विधि रंगमंच की सामग्री

Uncaught Error: Invariant Violation: Could not find "store" in either the context or props of "Connect(Home)". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "Connect(Home)".

यहाँ अपने आवेदन संरचना इस प्रकार है :

प्रस्तुत करना

import { render, createFactory } from 'react' 
import { Provider } from 'react-redux'; 
import router from './router/router' 
import store from './flux/store' 

window.onload =() => { 
    render(createFactory(Provider)({store: store}, 
     () => router 
    ), document.body) 
}; 

रूटर

import { _ } from 'factories' 
import { Router, IndexRoute, Route } from 'react-router' 
import history from 'history/lib/createBrowserHistory' 

import Home from '../components/home/home' 

let route = _(Route), 
    index = _(IndexRoute); 

let router = _(Router)({history: history()}, 
    route({path: 'home', component: Home}) 
); 

export default router; 

होम घटक

import React, { PropTypes } from 'react' 
import { div } from 'factories' 
import { connect } from 'react-redux' 
import { bindActionCreators } from 'redux'; 
import * as users from '../../flux/actions/users' 

class Home extends React.Component { 

    constructor() { 

     super(); 

     this.state = {} 
    } 

    componentWillMount() { 
     console.log(this.props.users.user) 
    } 

    componentWillUnmount() { 

    } 

    render() { 

     return (
      div({}, "Home") 
     ) 
    } 
} 

export default connect(
    state => { 
     return { 
      users: state.users 
     } 
    }, 
    dispatch => bindActionCreators(users, dispatch) 
)(Home) 

यह ऊपर उल्लेख किया त्रुटि मिल रही है का परिणाम है। जैसा कि आप देख सकते हैं कि मैं स्टोर को उसी तरीके से पास कर रहा हूं जैसा रेडक्स उदाहरण में दिखाया गया है।

उत्तर

5

समाधान redux troubleshooting docs में मिला था। मुझे अपने प्रतिक्रिया-राउटर को वास्तविक राउटर बनाने वाले फ़ंक्शन को वापस करने की आवश्यकता थी:

import { _ } from 'factories' 
import { Router, IndexRoute, Route } from 'react-router' 
import history from 'history/lib/createBrowserHistory' 

import Home from '../components/home/home' 

let route = _(Route), 
    index = _(IndexRoute); 

const router =() => 
    _(Router)({history: history()}, 
     route({path: 'home', component: Home}) 
    ); 
export default router; 
+1

वही दुष्प्रभाव। मेरे पास createStore() एक ऑब्जेक्ट लौटा था (घुंघराले ब्रेसिज़ में लपेटा गया था)। एक बार मैंने उन्हें ब्रेसिज़ में बदल दिया (यानी एक फ़ंक्शन वापस कर दिया), त्रुटि चली गई .... संकेत के लिए धन्यवाद। –

संबंधित मुद्दे