首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React Native Elements ButtonGroup -满足条件时启用按钮

React Native Elements ButtonGroup -满足条件时启用按钮
EN

Stack Overflow用户
提问于 2019-08-26 21:02:20
回答 2查看 2.4K关注 0票数 1

我使用的是带3个按钮的react-native-elements ButtonGroup。我需要在应用程序启动时禁用所有按钮,当满足条件时,我需要启用特定的按钮。

我已经禁用了所有使用false标志的按钮,但是我不确定如何使用条件语句和状态来启用特定的按钮。

任何帮助都将不胜感激。

代码语言:javascript
运行
复制
<ButtonGroup
  onPress={this.updateIndex}
  selectedIndex={selectedIndex}
  buttons={buttons}
  containerStyle={{ height: 100 }}
  //disabled={[0, 1, 2]}
  disabled={true}
/>

ADD_DETAILS(index) {
  if (index === 0) {
    console.log("clicked 0");
    this.requestDetails();
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-26 21:55:59

您可以将禁用的按钮存储在您的状态中,例如:

代码语言:javascript
运行
复制
this.state = {
  selectedIndex: 2,
  disabled:[], // you store your disabled buttons here
}

<ButtonGroup
 onPress={this.updateIndex}
 selectedIndex={selectedIndex}
 buttons={buttons}
 containerStyle={{height: 100}}
 disabled={this.state.disabled}
/> 

如果你有这样的ButtonGroup,你可以禁用按钮(例如第一次和第三次点击按钮),如下所示:

代码语言:javascript
运行
复制
  <Button
  title={"disable first and third buttons"}
  onPress={()=>{
    this.setState({disabled:[0,2]}); // here you update which buttons you want to disable
  }}/>
票数 0
EN

Stack Overflow用户

发布于 2019-08-26 21:28:15

正如文档所说,禁用:

代码语言:javascript
运行
复制
Controls if buttons are disabled. Setting true makes all of them disabled, while using an array only makes those indices disabled.

因此,创建一个结构,如:

代码语言:javascript
运行
复制
disabled={[1,2]}

将仅启用第一个按钮

要更新它,您应该使用状态变量并根据需要对其进行更新,例如:

代码语言:javascript
运行
复制
this.state={
   disabled=[0]
}

则禁用的道具将如下所示:

代码语言:javascript
运行
复制
disabled={this.state.disabled}

在你的onPress函数中,你应该按你需要的方式删除/添加你的按钮:

代码语言:javascript
运行
复制
onPress={this.buttonGroupOnPress}

这将把被点击按钮的索引作为参数发送给函数:

代码语言:javascript
运行
复制
buttonGroupOnPress = (index) =>{
   //your logic
   this.setState({ disabled: /* the new array of disabled buttons indexes */ })
}

来源:https://react-native-training.github.io/react-native-elements/docs/button_group.html#disabled

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57658445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档