MobX 中文文档

  开始纠错

Expr

expr 可用于在 computed 值中创建临时的 computed 值。 嵌套的 computed 值对简便的计算是有用的,能避免昂贵的计算。

在下列示例中,如果 selection 在别处修改(译者注:即不造成 isSelected 改变),expr 会阻止 TodoView 组件重渲染。 而组件只会在相关 todo 被(取消)选择时发生重渲染。

const TodoView = observer(({todo, editorState}) => {
    const isSelected = MobX.expr(() => editorState.selection === todo);
    return <div className={isSelected ? "todo todo-selected" : "todo"}>{todo.title}</div>;
});

expr(func) 相当于 computed(func).get().