在react渲染器中调用格式化函数是一种不好的做法吗?

时间:2019-01-28 12:57:49

标签: javascript reactjs

我有一个类似的功能:

const getTermsUrl = (list) => {
  const allianzInsurances = (list || []).filter(isAllianz)
  return get(first(allianzInsurances), 'productUrl', '')
}

也有一个带有渲染方法的组件,例如:

  ...
  render() {
    const { browser, list, selected, loading, invalidFields } = this.props

    // it`s bad practice to formating it in the render? 
    const termsAndConditionsProps = {
      browser,
      invalidFields,
      termsUrl: getTermsUrl(list), 
    }

    return (<TermsAndConditions {...termsAndConditionsProps} />)
  }
  ...

我的问题是:在渲染过程中格式化termsAndConditionsProps是不好的做法吗?还是将格式化的版本保留在构造器中的本地状态和格式中更好?

1 个答案:

答案 0 :(得分:2)

可以使用轻量级的格式化功能,并在组件的render方法中调用它们。如果您的道具不变,则在构造函数中移动此类计算是有意义的。但是,在上述情况下,每次list属性更新时,组件都已重新渲染。所以在这种情况下就可以了。