Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于高亮显示文本和从文件重新加载高亮显示的组件_Javascript_Reactjs_Highlight_React Component - Fatal编程技术网

Javascript 用于高亮显示文本和从文件重新加载高亮显示的组件

Javascript 用于高亮显示文本和从文件重新加载高亮显示的组件,javascript,reactjs,highlight,react-component,Javascript,Reactjs,Highlight,React Component,我正在使用以下功能创建文本荧光灯: 它允许用户选择并高亮显示/取消高亮显示屏幕上的文本 这页有不同的颜色 从文件加载突出显示(在页面中搜索文件中的单词并突出显示) 我能够使用rangy(它不是react组件)创建highlight和delete highlight函数,但是每当页面上的任何组件使用(setState方法)设置状态时,这些高光就会消失 此外,使用此方法无法轻松将以前突出显示的项目加载到页面中 这就是我再次重新开发此功能的原因,我想知道解决此问题的正确方法是什么 我一直在考虑开发

我正在使用以下功能创建文本荧光灯:

  • 它允许用户选择并高亮显示/取消高亮显示屏幕上的文本 这页有不同的颜色
  • 从文件加载突出显示(在页面中搜索文件中的单词并突出显示)
我能够使用rangy(它不是react组件)创建highlight和delete highlight函数,但是每当页面上的任何组件使用(setState方法)设置状态时,这些高光就会消失

此外,使用此方法无法轻松将以前突出显示的项目加载到页面中

这就是我再次重新开发此功能的原因,我想知道解决此问题的正确方法是什么

我一直在考虑开发一个定制的React组件来突出显示并将其添加到页面中,但是对于这种方法,我想知道如何在用户选择页面上的文本时动态添加突出显示组件,而不会在状态更新时丢失它


一个关于如何添加动态组件的有用资源的链接对我来说很方便,因为我已经寻找了一段时间来解决这个问题的正确方法,我认为我可能没有朝着正确的方向前进。

React将重新呈现状态已更改的任何内容。这将导致高亮显示消失,因为元素不相同,即使它们看起来相同

如果在许多情况下设置属性,React也将智能地重新渲染。这让React知道如何重用组件


如果状态正在正确更改,并且您只是希望有时阻止重新渲染,则应实现一个控制重新渲染条件的方法。

如果高光不是react组件,该怎么办?如果我将它们更改为react组件,我不知道它们在页面上的位置。有没有办法在不预先指定位置的情况下添加这些组件?我不确定我是否理解这个问题。但是,您始终可以使用普通的旧javascript中的ID或类名来选择项。