Javascript mapStateToProps和mapDispatchToProps未向组件发送道具
请注意,我正在处理一个redux项目,但是返回到MapStateTops的数据没有发送到组件。Console.log道具未定义Javascript mapStateToProps和mapDispatchToProps未向组件发送道具,javascript,reactjs,redux,Javascript,Reactjs,Redux,请注意,我正在处理一个redux项目,但是返回到MapStateTops的数据没有发送到组件。Console.log道具未定义 LiveEvent.protoTypes = { event: PropTypes.object.isRequired, error: PropTypes.string, }; const mapDispatchToProps = (dispatch) => { return { getSingle: (values) => {
LiveEvent.protoTypes = {
event: PropTypes.object.isRequired,
error: PropTypes.string,
};
const mapDispatchToProps = (dispatch) => {
return {
getSingle: (values) => {
console.log(Creators, "creators")
dispatch(Creators.getOneEvent(values));
},
};
};
const mapStateToProps = (state) => (
console.log(state.event.event, "state from liveEvent"),
{
event: state.event.event,
error: state.event.error_message,
}
);
export default connect(mapStateToProps, mapDispatchToProps)(LiveEvent);
有什么不对的吗啊,你有逗号,我把它读作控制台后面的分号。它很好用 你的代码中有很多错误。
<LiveEvent event={...} error={...} />
使用redux连接的组件不会从中获得道具,因为它的首要任务是检查组件本身并从中获得道具
因此,从组件中删除proptypes,以便组件可以接收redux道具
function LiveEvent({match}, props) {
props对象位于函数的第一个参数中。没有任何内容作为第二个参数传递。因此,您正在对道具进行分解以获得匹配
,然后创建一个名为props
,但与实际道具无关的无用变量
如果希望在不分解结构的情况下获取整个道具对象,请将代码更改为:
function LiveEvent(props) {
// Do whatever with props, including things like
// const { match } = props
}
或者,使用分解将您关心的道具分配给局部变量:
function LiveEvent({ match, event, error, getSingle }) {
}
兄弟,非常感谢。你的解决方案是最好的。
<LiveEvent event={...} error={...} />
function LiveEvent({match}, props) {
function LiveEvent(props) {
// Do whatever with props, including things like
// const { match } = props
}
function LiveEvent({ match, event, error, getSingle }) {
}