以下是我正在使用的代码。我收到的错误如Uncaught TypeError: Cannot read property 'dispatch' of undefined
。我还想dispatch
采取行动。
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 :(得分:1)
我立即通过您的代码示例注意了几件事:
首先,connect
函数需要第一个括号中的一些参数,即使该参数是null
,我也认为你不需要导出行上的括号。尝试使用以下内容替换最后两行:
export default connect(null)(SearchBar);
看看是否有任何区别。
答案 1 :(得分:1)
你正确地从dispatch
传递和撤回connect
。如果connect
没有任何参数,则只返回dispatch
但问题在于导出组件的方式
export default SearchBar();
在SearchBar之后你不需要()
还有一件事。为清楚起见,您可以使用其他名称,例如
var search = connect()(SearchBar)
export default search;
或者您可以像
一样执行此操作export default connect()(SearcBar);
后者是与前者相同的简写。
答案 2 :(得分:0)
我们也可以在连接中添加mapStateToProps。
const mapStateToProps = state => ({
uData: state
});
export default connect(mapStateToProps)(App);
我们不需要在connect()中给出null。
我相信它可能对你们有些帮助。