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

React运行时报Cannot add node 1错误及滑动器上下限功能失效问题

问题修复方案

1. 滑动器边界切换功能失效问题

错误原因:

  • 用来计数的size是普通JS变量,不属于React响应式状态,修改它不会触发组件重渲染,页面展示的value也不会同步更新
  • 边界判断逻辑完全错误:size < 1 && size > slides.length的条件永远不可能成立,数值无法同时小于1且大于3
  • 点击事件绑定在<a>标签上,默认会触发页面跳转刷新,导致所有状态重置

修正后代码:

import { useState } from "react";
import "./styles.css";

export default function App() {
  // 直接用value作为当前页码,初始值设为1符合最小边界要求
  const [value, setValue] = useState(1);
  const slides = ["one", "two", "three"];
  const maxSize = slides.length;

  const prev = (e) => {
    // 阻止a标签默认跳转行为
    e.preventDefault();
    if (value <= 1) return;
    setValue(prev => prev - 1);
  };

  const next = (e) => {
    e.preventDefault();
    if (value >= maxSize) return;
    setValue(prev => prev + 1);
  };

  return (
    <div className="slider">
      <a href="/" className="prev" onClick={prev}>
        Previous
      </a>
      <h2>Barking Road, London {value}</h2>
      <a href="/" className="next" onClick={next}>
        Next
      </a>
    </div>
  );
}

2. 运行时报错 Uncaught Error: Cannot add node 1 because a node with that id is already in the Store

当前提供的代码片段中没有相关逻辑,该报错属于项目中引入的状态管理库/第三方滑动组件的冲突问题,排查方向:

  • 检查所有组件传入的id属性,是否有重复赋值为1的情况
  • 排查滑动相关组件是否存在重复初始化、多次挂载的问题
  • 若使用了React DevTools等调试插件,可禁用后重试排除插件冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:09:03