为了账号安全,请及时绑定邮箱和手机立即绑定

在 React 中单击时禁用按钮

在 React 中单击时禁用按钮

忽然笑 2021-12-02 19:50:03
我制作了两个按钮组件,当我单击一个组件时,我想渲染另一个 onClick 以便能够禁用(因为它们看起来不一样)。    const match = id;    const checkId = this.state.pokemon.includes(match);            {!checkId || this.state.isDisabled === true ? (                        <button                            onClick={() =>                                this.setState({                                    isDisabled: true                                })                            }                        >                            Get Pokemon                        </button>                    ) : (                        <Button disabled/>                    )}                </div>问题是按钮禁用仅在我刷新时呈现,因为满足检查 ID 的条件但我在单击后直接切换到禁用按钮时遇到问题
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

替换为


     <button disabled={!checkId || this.state.isDisabled}

                        onClick={() =>

                            this.setState({

                                isDisabled: true

                            })

                        }

                    />

                        Get Pokemon

       </button>


查看完整回答
反对 回复 2021-12-02
?
三国纷争

TA贡献1804条经验 获得超7个赞

以下条件似乎有问题:

{!checkId || this.state.isDisabled === true ? (

在我看来,条件应该改为:

!checkId || !this.state.isDisabled,因为据我所知,每当单击按钮时,isDisabled状态都会设置为true将条件评估为真,因此,永远不会执行假情况。

如果您需要执行一次, per match,您甚至可以将条件更改为:

(!checkId && !this.state.isDisabled)

希望这可以帮助


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 464 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信