Javascript 当我使用reactnative时,如何在useEffect中使用async Wait?

Javascript 当我使用reactnative时,如何在useEffect中使用async Wait?,javascript,node.js,reactjs,react-native,Javascript,Node.js,Reactjs,React Native,执行useffect时,我希望通过异步存储获取令牌,然后通过axios.post('/auth/me')路由器获取数据值,并使用disaptch执行KAKAOLOG_IN_请求操作 使用console.log检查数据值后,数据值显示良好。但是当我运行我的代码时,就会发生这个错误 Possible Unhandled Promise Rejection (id: 1): Error: Actions may not have an undefined "type"

执行useffect时,我希望通过异步存储获取令牌,然后通过axios.post('/auth/me')路由器获取数据值,并使用disaptch执行KAKAOLOG_IN_请求操作

使用console.log检查数据值后,数据值显示良好。但是当我运行我的代码时,就会发生这个错误

    Possible Unhandled Promise Rejection (id: 1):
    Error: Actions may not have an undefined "type" property. Have you misspelled a constant?
    Error: Actions may not have an undefined "type" property. Have you misspelled a constant?
如何修复我的代码

这是我的密码

(index.js)

(reducer/index.js)

(src/index.js)

import{KAKAOLOG_IN_REQUEST}来自“../sagas/user”;
常量App=({})=>{
const dispatch=usedpatch();
useffect(()=>{
异步函数fetchAndSetUser(){
试一试{
const token=await AsyncStorage.getItem('tokenstore');
const{data}=wait axios.post(
“/auth/me”,
{},
{
标头:{授权:`Bearer${token}`,
},
);
console.log('data:data',data);
派遣({
键入:“KAKAOLOG_IN_REQUEST”,
数据:数据,
});
}捕获(错误){
}
}
fetchAndSetUser();
}, []);
返回;
};
导出{App};
问题 错误消息表示您的代码可能会抛出错误,但未处理该错误。它还表示请求中的
KAKAOLOG\u
由于某种原因未定义(可能是您忘记导入它,或者它实际上是一个字符串)

解决方案 将异步代码环绕在
try/catch
中。在请求中定义
KAKAOLOG\u
或作为字符串传递
“KAKAOLOG\u请求”


请求从哪里来?它是以正确的方式进口的吗?谢谢,它很有效!!!!!但我想知道。。。KAKAOLOG_IN_请求是在发生错误时导入的。然而,当我将其更改为“KAKAOLOG_IN_REQUEST”时,它工作正常。我好奇的是,在其他情况下,KAKAOLOG_in_请求工作得很好,但为什么“KAKAOLOG_in_请求”在这部分工作?@user15322469 Dunno,也许你混淆了命名vs默认导出/导入?如果你分享你的代码,我可以帮你解释一下,你是如何在请求中导出和导入
KAKAOLOG\u的。我更新了我的帖子!我发布了我的代码(:@user15322469,所以我看到一个命名的import
import{KAKAOLOG_IN_REQUEST}来自“../sagas/user”;
KAKAOLOG_IN_REQUEST
是如何从“../sagas/user”导出的?嗯……它没有成功……但是谢谢!
    const App = ({}) => {
      const dispatch = useDispatch();
      useEffect(() => {
        async function fetchAndSetUser() {
          const token = await AsyncStorage.getItem('tokenstore', (err, result) => {
          });
          var {data} = await axios.post(
            '/auth/me',
            {},
            {
              headers: {Authorization: `Bearer ${token}`},
            },
          );
          console.log("data:",data);
          
          dispatch({
            type: KAKAOLOG_IN_REQUEST,
            data: data,
          });
        }
        fetchAndSetUser();
      }, []);

      return <Navigator />;
    };

    export {App};
    import {
      KAKAOLOG_IN_FAILURE,
      KAKAOLOG_IN_REQUEST,
      KAKAOLOG_IN_SUCCESS,
    
    } from '../reducers/user';



    function* watchkakaoLogIn() {
      yield takeLatest(KAKAOLOG_IN_REQUEST, kakaologIn);
    }



    function* kakaologIn(action) {
      try {
        // const result = yield call(kakaologInAPI, action.data);
        yield put({
          type: KAKAOLOG_IN_SUCCESS,
          data: action.data,
        });
      } catch (err) {
        console.error(err);
        yield put({
          type: KAKAOLOG_IN_FAILURE,
          error: err.response.data,
        });
      }
    }

    export default function* userSaga() {
      yield all([
        fork(watchkakaoLogIn),
      
      ]);
    }
    import { combineReducers } from 'redux';

    import user from './user';
    import post from './post';

    // (이전상태, 액션) => 다음상태
    const rootReducer = (state, action) => {
      switch (action.type) {
        // case HYDRATE:
        //   // console.log('HYDRATE', action);
        //   return action.payload;
        default: {
          const combinedReducer = combineReducers({
            user,
            post,
          });
          return combinedReducer(state, action);
        }
      }
    };

    export default rootReducer;
    import {KAKAOLOG_IN_REQUEST} from '../sagas/user';



    const App = ({}) => {
      const dispatch = useDispatch();

      useEffect(() => {
        async function fetchAndSetUser() {
          try {
            const token = await AsyncStorage.getItem('tokenstore');
            const {data} = await axios.post(
              '/auth/me',
              {},
              {
                headers: {Authorization: `Bearer ${token}`},
              },
            );
            console.log('data::::::', data);

            dispatch({
              type: 'KAKAOLOG_IN_REQUEST',
              data: data,
            });
          } catch (error) {
          }
        }
        fetchAndSetUser();
      }, []);

      return <Navigator />;
    };

    export {App};
useEffect(() => {
  async function fetchAndSetUser() {
    try {
      const token = await AsyncStorage.getItem('tokenstore');
      const {data} = await axios.post(
        '/auth/me',
        {},
        {
          headers: { Authorization: `Bearer ${token}` },
        },
      );
      console.log("data:",data);
      
      dispatch({
        type: 'KAKAOLOG_IN_REQUEST',
        data: data,
      });
    } catch(error) {
      // handle error, logging, etc...
    }
  }
  fetchAndSetUser();
}, []);