每当创建一个新的ImmutableJS对象时,我想触发一个函数。我想使用ImmutableJS对象作为我的React应用程序状态,我想减少样板代码。
这是我现在所拥有的一部分:
@celery.task(ignore_result=True)
这就是我想要的样子:
function addTodo(text) {
let state = store.getState(); // Gets ImmutableJS object.
let todos = state.get('todos');
let newState = state.set('todos', todos.push('text'));
store.update(newState); // Triggers rerender.
}
这可能吗?
我尝试将整个function addTodo(text) {
let state = store.getState(); // Gets ImmutableJS object.
state.get('todos').push(text); // Store listens to change and replaces the current state with the newly created state. Store automatically triggers rerender.
}
包裹在addTodo
中,但withMutations
只允许浅层突变。
答案 0 :(得分:0)
同意卢卡斯的评论。这正是Redux的用武之地。您改变了商店的状态,它将强制使用新值重新呈现组件树 我不知道Immutable.js本身有任何类型的可观察函数,但可能有第三部分库具有该功能。