React组件未重新渲染:filteredTodos更新后<List>组件不显示
问题解决:filteredTodos更新后
- 组件不渲染
核心问题是拼写错误:你在判断条件里写了filteredTodos.lenght > 0,这里的lenght是错误拼写,正确的数组长度属性是length(末尾多一个t)。这个错误会让判断逻辑始终返回false,所以即使filteredTodos后续更新为非空数组,也不会渲染组件。
修正后的判断代码:
{filteredTodos.length > 0 ? ( <List todos={todos} setTodos={setTodos} filteredTodos={filteredTodos} /> ) : <div className="justify-content-center">No tasks have been added, add a new task</div>}
额外检查点:
- 确认
filteredTodos的初始状态是否为数组类型,比如const [filteredTodos, setfilteredTodos] = useState([]),避免因初始值不是数组导致读取length属性报错。
内容的提问来源于stack exchange,提问作者RMjessica
相关产品推荐
相关产品推荐

