我在从componentDidMount发送操作时遇到问题...错误是: TypeError: this.props.postDetails不是函数
Action.js
export const postDetails = data => ({
type: "POST_DETAILS",
post: data
})
容器/GetDetails.js
import Details from '../components/Details'
import { postDetails } from '../actions'
const mapStateToProps = state => ({ post: state.post });
const mapDispatchToProps = dispatch => bindActionCreators({postDetails}, dispatch);
const GetDetails = connect(
mapStateToProps,
mapDispatchToProps
)(Details)
export default GetDetails
组件/Details.js
import React from 'react'
import { postDetails } from '../actions'
class Details extends React.Component {
constructor(props){
super(props);
}
componentDidMount() {
console.log("did mount details");
this.props.postDetails();
}
render() {
return (
<div>
Details page
</div>
)
}
}
export default Details;
有人能帮我吗?为什么我会有这个错误?
发布于 2018-06-16 17:48:21
你必须返回一个对象,其中的键是你的道具。参见docs。
const mapDispatchToProps = dispatch => ({ postDetails: bindActionCreators({postDetails}, dispatch) })
或者,您可以使用速记符号:
const GetDetails = connect(
mapStateToProps,
{ postDetails }
)(Details)
发布于 2018-06-16 17:25:24
我没有看到bindActionCreator被导入。使用eslint来消除这些错误
https://stackoverflow.com/questions/50886483
复制相似问题