【发布时间】:2020-09-03 07:53:54
【问题描述】:
当我导航到特定组件时,我的 react 本机应用程序会引发此错误。我正在使用功能组件。
这是我的 useEffect 方法。
useEffect(() => {
let mounted = true;
if (mounted) {
getSingleProject(route.params.itemId);
console.log(singleProject && singleProject);
}
return () => {
mounted = false;
console.log("cleanup");
};
}, [getSingleProject, route.params.itemId])
我已经尝试了其他答案的另一种解决方案,但我没有帮助
这是我的操作方法
export const getSingleProject = (id) => async (dispatch) => {
console.log("This method us called");
const config = {
headers: {
Authorization: await AsyncStorage.getItem("token"),
},
};
await axios
.get(`${API_URL}/project/single/${id}`, config)
.then((res) => {
console.log(res.data, "this is from actions");
dispatch({
type: GET_SINGLE_PROJECT,
payload: res.data,
});
})
.catch((err) => {
dispatch({
type: GET_SINGLE_PROJECT_ERROR,
payload: err,
});
});
}
这是我的减速机。
export default function (state = initiastate, actions) {
const { type, payload } = actions;
case GET_SINGLE_PROJECT:
return {
...state,
singleProject: payload,
loading: false,
};
谢谢。
【问题讨论】:
-
-
我在useeffect方法中已经做到了。
-
不,有两种不同的方法。
-
在功能组件中有没有办法做到这一点?
-
使用
componentDidMount和componentWillUnmonut。前者使条件为真,后者使条件为假。
标签: javascript reactjs react-native