Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mapStateToProps和mapDispatchToProps未向组件发送道具_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript mapStateToProps和mapDispatchToProps未向组件发送道具

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) => {

请注意,我正在处理一个redux项目,但是返回到MapStateTops的数据没有发送到组件。Console.log道具未定义


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);



有什么不对的吗

啊,你有逗号,我把它读作控制台后面的分号。它很好用

你的代码中有很多错误。
  • 控制台在此不工作:
  • 隐性收益

    2.在组件中定义proptypes表示组件应该通过props。 组件道具

    此代码希望组件本身具有道具:

    <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 }) {
    
    }