reactjs react组件在重新渲染时会重置其状态吗?

kx7yvsdv  于 2023-03-12  发布在  React
关注(0)|答案(3)|浏览(253)

我有一个react函数组件,并将我的状态声明为:

const [myState, setMyState] = useState<boolean>(true);

当这个函数在我的一个 prop 改变时重新呈现时,myState是否重置为true?

zujrkrfu

zujrkrfu1#

重新渲染后,state的值不会自动更改。

在react中,始终为单向转换:

状态更改将触发**render()**方法。
Render方法不会触发状态更改。

q3aa0525

q3aa05252#

一般来说,在React中,当我们的状态改变或 prop 改变时,组件被重新渲染,但是rendering并不改变状态,如果你想通过改变 prop 来改变状态,你可以使用下面的代码:
例如,您的组件有两个属性id, title,当您更改idtitle时,您希望将myState设置为true

import React, {useState, useEffect} from 'react';

const MyComponent = ({id, title}) => {
  const [myState, setMyState] = useState(true);
  
  useEffect(()=>{
    setMyState(true);
  },[id, title])
  
  return (<div id={id}>{title}</div>)

}
vsnjm48y

vsnjm48y3#

,在卸载组件之前,状态将保持不变。

如果你想在卸载时触发一些东西,那么你可以使用useEffect钩子。
示例:

useEffect(()=>{
//code

return ()=>{
  //unMount Code
}
},[])

相关问题