我正在使用React Redux。得到错误-未捕获(承诺)TypeError:无法读取未定义的属性“ dispatch”
下面是控制台显示的内容
我知道我真的很接近,因为它可以短暂工作,并且添加了一些使它混乱的代码。我当时看到的是GET_RESULTS的有效负载,但是现在我不是因为这个错误。
点击搜索表单上的提交按钮时,这就是我所说的。我从API获取数据,并且该部分工作正常。
.....
import { store } from '../../../store/store'
import { getSearchResults } from '../../../actions/searchresults'
....
...
handleSubmit(event) {
event.preventDefault()
get(`apiURLHere`, { maxContentLength: 400 })
.then((data) => store.dispatch(getSearchResults(data)))
}
这是我的操作-
export const getSearchResults = username => {
return {
type: 'GET_RESULTS',
payload: username,
}
}
答案 0 :(得分:1)
在 search-advanced.js 文件中,您应该导入connect而不是导入store,然后连接您的组件,调度将在组件的属性中进行:
import { store } from '../../../store/store' // remove this line
import {connect} from 'react-redux'
更改:
export default class SearchAdvanced extends Component
收件人
class SearchAdvanced extends Component
而不是store.dispatch
使用:
this.props.dispatch(getSearchResults(searchResults))
然后在文件末尾添加:
export default connect()(SearchAdvanced)