You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中状态更新后条件渲染不生效,目标组件无法正常展示如何修复

问题原因

Array.prototype.includes() 方法的入参为待匹配的具体元素值,方法内部会对入参和数组项直接做全等比较。你当前给includes传入了回调函数,逻辑等价于判断professionals数组中是否存在这个回调函数对象本身,永远返回false,因此条件判断始终命中展示禁用输入框的分支。

修复方案

将用于判断是否存在符合条件项的方法替换为Array.prototype.some(),该方法接收回调函数作为入参,会遍历数组判断是否存在至少一个满足回调逻辑的元素。

修正后的条件渲染代码如下:

<div className="column is-6">
    {
       !professionals.some(item => item.value ==='programmers') ?
           <BaseInput disabled placeholder="usernames"></BaseInput> :
           <ReactTags
               tags={users}
               placeholderText={!users.length?"Search ...":''}
               allowNew={true}

               onDelete={(i)=> {
                   const tags = users.slice(0)
                   tags.splice(i, 1)
                   setUsers(tags)
               }}

               onAddition={ (tag) =>{
                   const tags = [].concat(users, tag)
                   setUsers(tags)
               }}
           />
    }      
</div>

内容的提问来源于stack exchange,提问作者NewTech Lover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:51:03