Reactjs 通过React.render进行更新会产生奇怪的结果

Reactjs 通过React.render进行更新会产生奇怪的结果,reactjs,Reactjs,我正在使用React编写一个web应用程序,由于UI框架的工作方式,我需要使用多个React组件安装到Html中的div中。要更新这些div,我再次调用React.render来更新不同的组件 这在我自己的机器上运行得非常好,但是一旦我在这个位置部署了一个最小化的版本,我就会有奇怪的行为 复制步骤: 导航到 点击汉堡菜单 在菜单中选择一项(打开练习集) 在底部按下“>”下一步按钮 应用程序似乎要重新加载 最初呈现的HTML为: 选择调用renderExercise()的“>”下一步按钮后,在新

我正在使用React编写一个web应用程序,由于UI框架的工作方式,我需要使用多个React组件安装到Html中的div中。要更新这些div,我再次调用React.render来更新不同的组件

这在我自己的机器上运行得非常好,但是一旦我在这个位置部署了一个最小化的版本,我就会有奇怪的行为

复制步骤:

  • 导航到
  • 点击汉堡菜单
  • 在菜单中选择一项(打开练习集)
  • 在底部按下“>”下一步按钮
  • 应用程序似乎要重新加载
  • 最初呈现的HTML为:

    选择调用
    renderExercise()
    的“>”下一步按钮后,在新生成的div中似乎有一种对整个应用程序的“重新加载”:

    新推出的部门为:

    这个div包含整个呈现页面中的所有内容,比如标签中定义的标签

    React将此视为不匹配的服务器端渲染,并出现以下错误:

    警告:React试图重用容器中的标记,但校验和无效。这通常意味着您正在使用服务器呈现,并且在服务器上生成的标记不是客户机所期望的。React注入了新的标记以补偿其效果,但您已经失去了服务器呈现的许多好处。相反,请找出在客户端或服务器上生成的标记不同的原因:
    
    (客户)我注意到你的定制JS被损坏了。在本地工作时,您是否也使用了损坏的代码?奇怪的是,我在“下一步”按钮上看到了对index.html的请求,但没有任何应该请求的内容!所有数据都已经在…@WalterRoman中,如果我运行与我在本地发布的文件集完全相同的文件集,经过修改、缩小,它就会工作。我没有看到其他web请求。如果我把它们放在其他地方,我会在按下“下一步”按钮时看到更多的web请求。我不知道。。。例如,托管在dropbox上:在您的github版本上,我看到三个JS错误,应用程序甚至没有启动。我注意到您的自定义JS已损坏,可能是重复的。在本地工作时,您是否也使用了损坏的代码?奇怪的是,我在“下一步”按钮上看到了对index.html的请求,但没有任何应该请求的内容!所有数据都已经在…@WalterRoman中,如果我运行与我在本地发布的文件集完全相同的文件集,经过修改、缩小,它就会工作。我没有看到其他web请求。如果我把它们放在其他地方,我会在按下“下一步”按钮时看到更多的web请求。我不知道。。。例如,托管在dropbox上:在您的github版本上,我看到三个JS错误,应用程序甚至没有启动。我注意到您的自定义JS已损坏,可能是重复的。在本地工作时,您是否也使用了损坏的代码?奇怪的是,我在“下一步”按钮上看到了对index.html的请求,但没有任何应该请求的内容!所有数据都已经在…@WalterRoman中,如果我运行与我在本地发布的文件集完全相同的文件集,经过修改、缩小,它就会工作。我没有看到其他web请求。如果我把它们放在其他地方,我会在按下“下一步”按钮时看到更多的web请求。我不知道。。。例如,托管在dropbox上:在您的github版本上,我看到三个JS错误,应用程序甚至没有启动。可能是重复的
        function renderIndex(source) {
            var context = { rootUri: source.substring(0, source.lastIndexOf( "/" )) };
            $.get(source + "?v=" + Math.random().toString(), function (indexMarkdown) {
                $.afui.hideMask();
                var indexManager =  new IndexManager(source, indexMarkdown, this.rootUri);
                React.render(<Index key="index" indexManager={indexManager}/>, document.getElementById('mountIndexLeftMenu'));
            }.bind(context));
        }
    
        function renderExercises(source) {
            var context = { rootUri: source.substring(0, source.lastIndexOf( "/" )) };
            $.get(source + "?v=" + Math.random().toString(), function (exercisesMarkdown) {
                $.afui.hideMask();
                var exerciseManager =  new ExerciseManager(source, exercisesMarkdown, this.rootUri);
                renderExercise(exerciseManager);
            }.bind(context));
        }
    
        function renderExercise(exerciseManager) {
            React.render(<ExercisesHeader key="exerciseHeader" exerciseManager={exerciseManager}/>, document.getElementById('mountAppHeader'));
            React.render(<Exercises key="exercises" exerciseManager={exerciseManager}/>, document.getElementById('mountExercisesViewer'));
            React.render(<ExercisesController key="exercisesController" exerciseManager={exerciseManager}/>, document.getElementById('mountExercisesController'));
        }
    
        renderIndex("https://raw.githack.com/wiki/svdoever/trainercoach/indexhotyoga.md");