【发布时间】:2019-12-29 23:03:56
【问题描述】:
我正在创建一个列出几个空缺职位的网站。
一旦组件安装,我想GET 所有工作职位。因此,我使用了useEffect。
我在useEffect 中设置状态,我认为这是导致错误的原因:
警告:无法对未安装的组件执行 React 状态更新。
我想知道如何解决此警告。我不明白为什么我不能在useEffect中设置状态@
我的组件
function MyComponent({changeType}) {
const [user, setUser] = React.useState([]);
const [positions, setPositions] = React.useState([]);
async function getAllPositions(){
let response = await axios("http://www.localhost:3000/api/v1/positions");
setPositions(response.data)
}
useEffect( ()=> {
let jwt = window.localStorage.getItem('jwt')
let result = jwtDecode(jwt)
setUser(result)
changeType() # It is a function passing props to the parent of "MyComponent"
getAllPositions()
}, [],
)
return(
<div>
Something
</div>
)
}
【问题讨论】:
-
MyComponent是否有可能在 Axios 调用返回之前被其父组件卸载? -
我添加了函数
changeType,用于将props传递给MyComponent的父母。您认为这可能是问题所在吗?
标签: reactjs react-hooks