我列出了模态/弹出式列表,并使用状态控制它们。
renderGenericOKModal({ title, message, visibleStateVar }) {
return (
<PromptModal
alertTitle={title}
alertMessage={message}
isVisible={this.state[visibleStateVar]}
onRightButtonPress={() =>
this.setState({ [visibleStateVar]: false });
}
rightButtonLabel={strings.labelOK}
/>
);
}
我在介质上看到了一些评论,说上面的代码没有优化,因为它为onRightButtonPress
创建了许多不必要的相似功能。因此,我试图做下面的事情,但不确定它是否确实有任何区别?
genericOKButtonOnPress = ({ visibleStateVar }) => {
this.setState({ [visibleStateVar]: false });
};
onRightButtonPress={() =>
this.genericOKButtonOnPress({ visibleStateVar })
}
但是上面的代码仍在创建每个单独的匿名函数对象,看起来与我的原始代码相同吗?
更新:
onRightButtonPress={this.genericOKButtonOnPress.bind(null, {
visibleStateVar
})}
使用bind
应该对我的情况有益吗?
使用arrow function
定义CC_4无匿名函数。
onRightButtonPress = () => this.genericOKButtonOnPress({ visibleStateVar }) //inline
或
onRightButtonPress = () => {
this.genericOKButtonOnPress({ visibleStateVar })
} //using block
striptmodal 应该是
<PromptModal
alertTitle={title}
alertMessage={message}
isVisible={this.state[visibleStateVar]}
onRightButtonPress=this.onRightButtonPress
rightButtonLabel={strings.labelOK}
/>