2017-02-21 83 views
3

以下是我正在使用的代碼。我收到一個錯誤,如Uncaught TypeError: Cannot read property 'dispatch' of undefined。我也想dispatch一個動作。無法讀取'undefined'的屬性'dispatch'。 React

import { connect } from 'react-redux' 
let SearchBar = ({ dispatch }) => { 
    let input 
    return (
     <div> 
      <form> 
       <input type="text" placeholder="Search" /> 
       <p> 
       <input type="checkbox" /> 
       {' '} 
       Free 
       </p>     
      </form> 
     </div> 
    ) 
} 

SearchBar = connect()(SearchBar) 
export default SearchBar() 

回答

0

一對夫婦的事情,我與你的代碼示例立即注意到:

所有connect功能首先需要在第一個括號一些參數,即使參數是一個null,此外,我不認爲你需要出口線上的括號。嘗試用這樣的東西替換最後兩行:

export default connect(null)(SearchBar); 

看看是否有任何區別。

+0

謝謝,現在有效 – user1637909

1

你是正確的從connect傳遞和retreiving dispatch。作爲connect不帶任何參數。然而問題是要導出組件

export default SearchBar(); 

你不需要搜索欄後()還有一兩件事的方式將只返回dispatch

。爲了清楚起見,你可以使用不同的名稱,如

var search = connect()(SearchBar) 
export default search; 

,或者你可以做一個單一的步驟一樣

export default connect()(SearcBar); 

後者是同樣的事情,因爲前者的簡寫。

+0

謝謝,現在有效 – user1637909

+0

很高興幫助:) –

相關問題