倾听ImmutableJS的变化?

时间:2016-10-10 08:33:54

标签: javascript reactjs immutable.js

每当创建一个新的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只允许浅层突变。

1 个答案:

答案 0 :(得分:0)

同意卢卡斯的评论。这正是Redux的用武之地。您改变了商店的状态,它将强制使用新值重新呈现组件树 我不知道Immutable.js本身有任何类型的可观察函数,但可能有第三部分库具有该功能。