2016-12-30 67 views
0

我正在使用React和Redux。我想通过我的无状态的组件(终极版)的行动,像这样的对象:将Redux动作的对象传递给无状态组件

从我的容器:

render() { 
    const objectOfActions = { 
     changeTitle: this.props.changeTitle, 
     changeDescription: this.props.changeDescription, 
    }; 

    return (
     <StatelessComponent 
      objectOfActions={objectOfActions} 
     /> 
    ); 
    } 

所以无状态组件可以使用的操作如下:

const SuggestSessionChange = ({objectOfActions}) => { 
    return (
    <div> 
     <Button onClick={objectOfActions.changeTitle}>ChangeTitle</Button> 
    </div> 
); 
} 

但是,当将它们传递给对象时,这些动作并不会触发(尽管它们在动作单独传递给无状态组件时会触发)。为什么这不起作用?

回答

0

行为确实发生了火灾,我有一个错字在我的无状态函数中调用了一个未定义的函数。

0

更改函数参数作为参数。因为你没有做参数的任何拆解

const SuggestSessionChange = (objectOfActions) => { 
    return (
    <div> 
     <Button onClick={objectOfActions.changeTitle}>ChangeTitle</Button> 
    </div> 
); 
} 
+0

谢谢你的建议哈立德。事实证明,解构并没有什么不同,那是因为我的组件onClick处理器中有一个错字,见下文。 – Kunal