当组件包含帮助程序时如何重新渲染组件?

Posted

技术标签:

【中文标题】当组件包含帮助程序时如何重新渲染组件?【英文标题】:How to rerender a component when it contains a helper? 【发布时间】:2017-08-10 06:30:30 【问题描述】:

问题

我正在尝试在操作后重新渲染组件,但我需要重新渲染的模板部分没有更新,因为它来自我制作的助手的结果,或者至少我认为这是因为.

在我的组件模板中,我有这样的东西:

my-helper value

在关联的组件js文件中,我有这个动作:

fillGrid(location, length) 
  /* logic */

  this.rerender();
,

我是怎么做的

我找到了一种方法,但感觉很奇怪,我使用了一个布尔值,我在动作中在真假之间切换以强制重新渲染

fillGrid(location, length) 
    let me = this;
    this.set('show', false);

    /* logic */

    Ember.run.later(function() 
      me.set('show', true);
      me.rerender();
    , 10);

在模板中:

#if show
    my-helper value
/if

这是正确的做法吗?

【问题讨论】:

【参考方案1】:

您无需显式调用this.rerender()。如果您更改了value 属性,则my-helper 将被自动调用以重新计算并显示在组件模板中。

【讨论】:

以上是关于当组件包含帮助程序时如何重新渲染组件?的主要内容,如果未能解决你的问题,请参考以下文章

React 组件中的错误导致应用程序重新渲染,从而导致无限循环。为啥?

如何重新渲染 React 组件?

如何从无限重新渲染中停止反应组件

反应父母对孩子道具传递而不重新渲染

在 url 更改时重新渲染组件

重新渲染 Reactjs 后,父组件立即失去状态