如何使用react-native-paper主题设置禁用按钮的颜色?

Mr.*_*bot 6 material-design react-native react-native-paper

react-native-paper文档建议您可以使用主题设置禁用按钮的颜色,但此代码不起作用:

export const buttonTheme = {
  colors: {
    primary: COL_BASE_YELLOW,
    disabled: COL_DARK_HIGHLIGHT,
  },
}

<Button
  loading={submittedPhoneNumber ? true : false}
  mode="contained"
  onPress={() => handleSubmitPhoneNumber(phoneNumber)}
  theme={buttonTheme}
  disabled={phoneNumber.length < 5 ? true : false}>
  Continue
</Button>
Run Code Online (Sandbox Code Playgroud)

然而,颜色primary有效。当按钮被禁用时如何更改按钮的颜色?

小智 11

不要使用禁用的道具,它总是会让你的按钮变成灰色,如果你想在禁用模式下使用你想要的颜色,请这样做:

<Button
  loading={submittedPhoneNumber ? true : false}
  mode="contained"
  onPress={phoneNumber.length < 5 ? () => {} : () => handleSubmitPhoneNumber(phoneNumber)}
  color={phoneNumber.length < 5 ? 'darkerColor' : 'fadedColor'}>
  Continue
</Button>
Run Code Online (Sandbox Code Playgroud)