当前位置: 首页 > 知识库问答 >
问题:

在React中禁用开关按钮

章盛
2023-03-14

如果我单击年度单选按钮,则开关按钮(标记为“半天”)应隐藏或禁用(仅适用于年度单选按钮)。我该怎么做呢?

<RadioGroup onChange={this.onChange} value={this.state.leavevalue}>
    <Radio value={1}>Casual</Radio>
    <Radio value={2}>Medical</Radio>
    <Radio value={3}>Annual</Radio>
    <Radio value={4}>Lieu</Radio>
    <Radio value={5}>Special</Radio>
    <Radio value={6}>Maternity</Radio>
    <Radio value={7}>Paternity</Radio>
    <Radio value={8}>NoPay</Radio>
</RadioGroup>

这是我的开关按钮代码:

<Switch onChange={this.handleHalfDay} checked={this.state.isHalfDay} />

这是我的onChange函数

onChange = (e) => {
    this.setState({
        leavevalue: e.target.value,
        isHalfDay: false,
    });
}

我的单选按钮和开关按钮:

共有2个答案

爱乐邦
2023-03-14

一个简单的条件语句就可以了:

onChange = (e) => {
    this.setState({
      leavevalue: e.target.value,
      isHalfDay: false,
      isHalfDayHidden: e.target.value === 3
    });
  }

另一个条件显示或隐藏开关

{!this.state.isHalfDayHidden && (
  <Switch onChange={this.handleHalfDay} checked={this.state.isHalfDay} />
)}
江迪
2023-03-14

您可以禁用Switch时,您的leavvalue状态变量等于3

示例

class App extends React.Component {
  state = {
    leavevalue: 1,
    isHalfDay: true
  };

  handleChange = value => {
    this.setState({ leavevalue: value });
  };

  handleHalfDay = () => {
    this.setState(previousState => {
      return { isHalfDay: !previousState.isHalfDay };
    });
  };

  render() {
    return (
      <div>
        <RadioGroup
          selectedValue={this.state.leavevalue}
          onChange={this.handleChange}
        >
          <Radio value={1} />Casual
          <Radio value={2} />Medical
          <Radio value={3} />Annual
          <Radio value={4} />Lieu
          <Radio value={5} />Special
          <Radio value={6} />Maternity
          <Radio value={7} />Paternity
          <Radio value={8} />NoPay
        </RadioGroup>
        <Switch
          onChange={this.handleHalfDay}
          checked={this.state.isHalfDay}
          disabled={this.state.leavevalue === 3}
        />
      </div>
    );
  }
}
 类似资料:
  • 我使用文本输入组件来接受来自用户的文本,并且只有当文本输入匹配某个字符串时,按钮才应该被启用。 我可以思考通过在没有TouchableOpactiy包装器的情况下初始渲染按钮,一旦输入字符串匹配,就用包装器重新渲染。 但是我猜有更好的方法来做到这一点。有人能帮忙吗?

  • 问题内容: 在Swing中,我们可以禁用这样的按钮: 无论如何,使用JavaFX Button可以做到这一点吗?用户只能按一次按钮。 问题答案: 当然。只有相关 属性具有相反的语义,并称为。这意味着您可以使用(not )和。由于它是JavaFX属性,因此您还可以将侦听器附加到。 在http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html#

  • 在Swing中,我们可以禁用如下按钮: 有什么方法可以用JavaFX按钮做到这一点吗?用户应该只能按一次按钮。

  • 我想做的是禁用一个按钮,当我启用另一个按钮时(因此最多可以激活一个按钮),但我对JS的了解非常基础。任何提示都将不胜感激。 Lorem ipsum dolor sit amet,concetetur adipiscing elit。车辆三体间前庭。前庭等扫描电镜。Ut venenatis sagittis孕妇。Nam enim tortor,lacinia pretium dolor sit am

  • 问题内容: 我用Java开发的软件有问题。用户必须在JtextPane中编写文本。如果没有时间给他写信,则会出现一个弹出窗口。唯一的问题是:如果在弹出消息时用户正在写,则弹出窗口消失,因为按下的键验证了消息。 无论如何,我可以禁用此功能吗?我用它来创建MessageDialog: 谢谢阅读。 问题答案: 禁用正常的应用程序行为(例如,使用键操作对话框)不是一个好主意。它使许多用户感到困惑,这些用户