2017-02-21 373 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

很高兴帮助:) –