当引用对象改变时,react .js视图不更新

Ractive.js view not updating when reference object changes

本文关键字:js 视图 更新 react 引用 对象 改变      更新时间:2023-09-26

我的问题在http://jsfiddle.net/shrekuntu/ek2m25cj/7/

//--ractive code in jsfiddle    

我有一个'工作站'列表,点击一个工作站设置一个可编辑对象'current_ws'。如果我更改'current_ws'的名称,它不会在工作站列表中显示它。我认为"工作站"对象在内存中更新,它只是没有在列表中反映屏幕上的变化。我怎样才能使它更新?

谢谢

react需要的不仅仅是对象引用相等才能"知道"这些值引用的是同一事物。好处是,一旦你建立了链接,你就不需要javascript来连接它们了。

对于0.7(最新),使用键盘和当前索引而不是对象引用(参见http://jsfiddle.net/ek2m25cj/8/):

)。
{{#workstations:i}}
    <li on-click='set( "current", i )'>{{name}} ({{departments[department_id].name}})</li>
{{/workstations}}
</ul>
{{#if current != null}}
<div>
    Name:<input type="text" value="{{ workstations[current].name}}">
</div>
{{/if}} 

对于Ractive 0.8 edge的下一个版本,您可以使用link方法来利用单独的对象引用(参见github PR):

{{#workstations:i}}
    <li on-click='link( "current", this )'>{{name}} ({{departments[department_id].name}})</li>
{{/workstations}}
</ul>
{{#if current}}
<div>
    Name:<input type="text" value="{{ current.name }}">
</div>
{{/if}}

你可以启用magic模式,使用ES5访问器触发更新:

ractive = new Ractive({
            magic: true,
            // ...
          };

参见working fiddle