2016-12-30 104 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