微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查id是否等于用户的id并在react js中有条件地显示按钮?

如何解决如何检查id是否等于用户的id并在react js中有条件地显示按钮?

大家好,我是新手,目前正在尝试根据条件显示 2 个按钮。我需要检查用户是否存在于具有用户 id 的数组中并显示相应的按钮。

这是我收到的 json 响应。

(2) [{…},{…}]
0: {id: 8,username: "testuser5"}
1: {id: 4,username: "testuser2"}
length: 2
__proto__: Array(0)

这是我的代码

const [pending,setPending] = useState([]);

const pendingfun = async function pendingInfo() {
    await axiosInstance.get(url).then((res) => {
        const pending = res.data;
        setPending(pending)
        // console.log(pending)
    })
}

pending.forEach(x => x.id === user.id) ?             
    <Button variant="outlined" color="primary" disableElevation                                         
    >
        Save
    </Button> 
    :   <Button variant="outlined" color="primary" disableElevation>
             Cancel
        </Button>

问题是当我运行它时,屏幕上没有显示任何按钮。有人可以帮忙吗?

谢谢

解决方法

forEach 不返回任何内容,只对数组进行迭代。您应该使用 find 来返回正确的按钮:

pending.find(x => (x.id !== user.id)) ?             
    <Button variant="outlined" color="primary" disableElevation                                         
    >
        Save
    </Button> 
    :   <Button variant="outlined" color="primary" disableElevation>
             Cancel
        </Button>
 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。