javascript - React Native - 如何在多个按钮上应用 Prop

标签 javascript reactjs react-native redux

我有一个按钮,当我切换按钮时它会改变颜色。 这是代码:

state={
  status:[
    {toggle:false}
  ]
}

_onPress(){
  const newState = !this.state.toggle
  this.setState({toggle:newState})
}

render(){
      const {toggle} = this.state
      const textValue = toggle?"ON":"OFF"
      const buttonBG = toggle?"#6AAAC6":"white"
      const textColor = toggle?"white":"gray"

return(
<TouchableOpacity
onPress={()=>this._onPress()}
<Text>button</Text>
</TouchableOpacity>
)
}
}

但是如果我有多个按钮并且它们基本上执行相同的功能怎么办?有没有办法可以重复使用此代码而无需多次复制和粘贴?

最佳答案

您可以创建一个组件调用CustomButton

class CustomButton extends React.Component {

  static defaultProps = {
    onToggle: () => {},
  }

  state = {
    status: [{ toggle: false }]
  }

  _onPress() {
    const newState = !this.state.toggle
    this.setState({ toggle: newState })
    this.props.onToggle(newState)
  }

  render() {
    const { toggle } = this.state
    const textValue = toggle ? 'ON' : 'OFF'
    const buttonBG = toggle ? '#6AAAC6' : 'white'
    const textColor = toggle ? 'white' : 'gray'

    return (
      <TouchableOpacity onPress={() => this._onPress()}>
        <Text>button</Text>
      </TouchableOpacity>
    )
  }
}

并在任何你想要的地方使用

class App extends React.Component {

  onButtonToggle = (isToggle) => {
    console.log(isToggle)
  }

  render() {
    return (
      <View>
        <CustomButton onToggle={this.onButtonToggle} />
      </View>
    )
  }
}

关于javascript - React Native - 如何在多个按钮上应用 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51550078/

相关文章:

javascript - Dygraphs 同步错误

javascript - 强制浏览器刷新 CSS、JavaScript 等

javascript - react + typescript : Property * is missing in type *

javascript - 如何停止 React 中条件 JSX 的更改,直到再次单击提交?

javascript - 检查某些内容是否不为空后,我收到空或未定义类型错误。如何?

image - 不变违反 : App(. ..) 渲染没有返回任何内容。这通常意味着缺少 return 语句。 react 原生

JavaScript 图像预加载

reactjs - 自定义组件顶栏按钮事件 RNN v2

javascript - 如何在 React Native 的标题中放置搜索栏?

javascript - Bootstrap Modal 不工作但 modal-sm 是