我在使用MobX动作切换布尔可观察值时遇到麻烦。该消息似乎表明我在尝试将属性从false切换为true时正在尝试添加属性:
TypeError: Cannot add property text_copied_message, object is not extensible
src/stores/ui_store.js:54
51 | }
52 |
53 | change_copy_message_state () {
> 54 | this.text_copied_message = true;
这是动作:
change_copy_message_state () {
this.text_copied_message = true;
window.setTimeout(() => {
this.text_copied_message = false;
}, 5000);
}
这是调用操作的组件代码:
<CopyToClipboard text={ui_store.final_text_message}>
<Button
size='huge'
color='orange'
onClick={ ui_store.change_copy_message_state }
>
Copy Text and Open Social Media Sites in New Tabs
</Button>
</CopyToClipboard>
谁能说出是什么原因造成的?
答案 0 :(得分:0)
我遇到了同样的问题,我通过将函数转换为箭头函数来解决,所以在您的情况下:
change_copy_message_state = () => {
// ...
}
通过这种方式this
被绑定到对象。另外,在装饰它时,请使用action.bound
。