我有一个类似的功能:
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
是不好的做法吗?还是将格式化的版本保留在构造器中的本地状态和格式中更好?
答案 0 :(得分:2)
可以使用轻量级的格式化功能,并在组件的render方法中调用它们。如果您的道具不变,则在构造函数中移动此类计算是有意义的。但是,在上述情况下,每次list
属性更新时,组件都已重新渲染。所以在这种情况下就可以了。