2016-10-08 41 views
0

我剛剛開始學習reactjs & redux並嘗試將項目添加到列表中。這是我的rootcomponent:如何讓減速機工作?

//create store based on reducer 
const store = createStore(listItem) 
const rootEl = document.getElementById('root') 

//render root component 
const render =() => ReactDOM.render(
    <List 
     addToList={() => store.dispatch({ type: 'ADD_TO_LISTS' },'testing')} 
    />, 
    rootEl 
) 

//call 
render() 

//subscribe the store 
store.subscribe(render) 

在列表組件的渲染方法是這樣的:

render() { 
    const { addToList } = this.props 
    return (
     <p> 
     <input type="text" /> 
     <button onClick={addToList}>add</button> 
     </p> 
    ) 
    } 

減速機看起來是這樣的:

const listItem = (state, action) => { 
    switch (action.type) { 
    case 'ADD_TO_LIST': 
     return [...state,action.text] 

    default: 
     return state 
    } 
} 

然而,當我運行程序的時候,引發錯誤:

Uncaught error: expected reducer to be a function 

我的代碼有什麼問題?

回答

1

我想通了,忘了把'export default listItem'放在reducer的末尾