首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有条件地禁用按钮

有条件地禁用按钮
EN

Stack Overflow用户
提问于 2021-07-21 11:03:43
回答 2查看 203关注 0票数 1

我正在尝试在ID达到某个数字后自动禁用按钮,例如7。代码编译但无法执行,即根据条件禁用按钮。使用React和Tailwind。

代码语言:javascript
复制
    <div className="mt-8 mb-16">
      <button
        id="BTS"
        onClick={handlePurchase}
        type="button"
        disabled={this.id >= 7 }
        className="inline-flex items-center ... "
      >
        Mint me a Marköbot!
      </button>
    </div>

应用程序的源代码在(第103行)

非常感谢!

How to merge two buttons into one?上用alt方法发布了这个问题

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-22 01:10:25

设法解决了这个问题。发现缺少handleClick部件,该部件是以内联方式呈现“this”所必需的。感谢所有提出建议的人。如果你有一个更简单的解决方案,一定要分享。

代码语言:javascript
复制
class Toggle extends React.Component {
  constructor(props) {
    super(props);
    this.id = 0;
    this.handleClick = this.handleClick.bind(this);
  }

handleClick() {
  this.setState(prevState => ({
    isToggleOn: !prevState.isToggleOn
  }));
}

render() {
  return (
    <button onClick={this.handleClick}
      disabled={this.id <= 9 ? true : false}>
        {this.id <= 9 ? 'X' : 'Y'}
    </button>
  );
}
}

ReactDOM.render(
  <Toggle />,
  document.getElementById('root')
);
票数 0
EN

Stack Overflow用户

发布于 2021-07-21 11:34:22

在你的代码中,this.id是否意味着按钮id?为什么不使用附加状态来进行条件禁用?

我看过你的代码,你用的是函数组件,我假设this.id就是按钮id

您可以创建新状态并将该状态用作条件,例如

代码语言:javascript
复制
    const [buttonId, setButtonId] = React.useState(null)

    return(
        <button
          id="BTS"
          onClick={handlePurchase}
          type="button"
          disabled={buttonId >= 7 }
          className="inline-flex items-center ... "
        >
          Mint me a Marköbot!
        </button>
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68463507

复制
相关文章

相似问题

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