Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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 - Fatal编程技术网

Javascript 反应:避免在状态更改时重新呈现组件

Javascript 反应:避免在状态更改时重新呈现组件,javascript,reactjs,Javascript,Reactjs,这个小程序在您单击的位置绘制一个随机形状。 当你点击某个形状时,它应该被删除 删除是可行的,但之后所有形状都会重新渲染。如何避免形状的重新渲染?您可以尝试此操作,生成id并将该id用作键,我认为React DOM会根据键渲染元素: constructor(props) { super(props); this.id = 0; // add id .... } addShape(e) { ... updatedShapes.push({ x: e.client

这个小程序在您单击的位置绘制一个随机形状。 当你点击某个形状时,它应该被删除


删除是可行的,但之后所有形状都会重新渲染。如何避免形状的重新渲染?

您可以尝试此操作,生成id并将该id用作键,我认为React DOM会根据键渲染元素:

constructor(props) { 
 super(props); 
 this.id = 0; // add id
 ....
} 

addShape(e) { 
 ...     
 updatedShapes.push({ 
   x: e.clientX, 
   y: e.clientY,
  id: this.id++ 
 }); 
 ...
} 

randomShape(shape)
{
  ...
  <circle ... key={shape.id} .../>;
  ...
}
constructor(props){
超级(道具);
this.id=0;//添加id
....
} 
addShape(e){
...     
updatedShapes.push({
x:e.clientX,
y:e.clientY,
id:this.id++
}); 
...
} 
随机形状(形状)
{
...
;
...
}

您可以尝试此操作,生成id并将该id用作键,我认为React DOM根据键呈现元素:

constructor(props) { 
 super(props); 
 this.id = 0; // add id
 ....
} 

addShape(e) { 
 ...     
 updatedShapes.push({ 
   x: e.clientX, 
   y: e.clientY,
  id: this.id++ 
 }); 
 ...
} 

randomShape(shape)
{
  ...
  <circle ... key={shape.id} .../>;
  ...
}
constructor(props){
超级(道具);
this.id=0;//添加id
....
} 
addShape(e){
...     
updatedShapes.push({
x:e.clientX,
y:e.clientY,
id:this.id++
}); 
...
} 
随机形状(形状)
{
...
;
...
}

其他形状在重新渲染时也会被删除吗?所以不用担心。这是React的一个原理,即每当状态发生变化时,组件及其子组件都会重新招标。但是,如果您需要自己处理重新渲染,则可以使用React提供的
shouldComponentUpdate
函数。当React组件将要重新渲染时,会调用它。当它重新渲染时,其他形状也会被删除吗?所以不用担心。这是React的一个原理,即每当状态发生变化时,组件及其子组件都会重新招标。但是,如果您需要自己处理重新渲染,则可以使用React提供的
shouldComponentUpdate
函数。每当React组件将要重新渲染时,都会调用它。