這裏有一個簡單的例子:修改陣營輔元件道具渲染後
copyButton = <SomeReactComponent title="My Button" />
this.clipboard = new Clipboard('button#copy-button');
this.clipboard.on('success',() => {
this.copyButton.props.title = "Copied!";
});
render =() => {
return (
...
{ this.copyButton }
...
);
}
使用Clipboard.js,按我的按鈕的時候,我有些文本複製到剪貼板。在成功的副本上,我想更改我的複製按鈕的標題以反映這一點。我保留引用的按鈕組件已經被渲染,並且this.copyButton.props.title
顯然不起作用,因爲組件是不可變的。
那麼,我會如何改變我的按鈕上的title
的值?我知道我可以在父組件中擁有一個狀態屬性,但我寧願避免讓父組件完成無狀態。我可以簡單地在成功回調中重新指定this.copyButton
(我試過但沒有運氣)?
更一般地講,如果父母組件更新他們的孩子的道具應該如何?使用狀態真的是唯一的方法嗎?
注意:如果有問題,我正在使用ES6。
P.S.嗨布倫丹! – taylorc93
是的,我只是在父組件中使用狀態。另外-_- – barndog