如何通过参考调用函数



我列出了模态/弹出式列表,并使用状态控制它们。

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}
/>

最新更新