如何返回异步箭头功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何返回异步箭头功能?相关的知识,希望对你有一定的参考价值。
我在Redux上使用React,并具有以下代码:
hooks.js
:
import { useDispatch } from 'react-redux';
import { checkCookieOne, checkCookieTwo } from './thunk';
...
export function useValidateCookieEffect() {
const dispatch = useDispatch();
React.useEffect(() => {
dispatch(checkCookieOne());
dispatch(checkCookieTwo());
}, [dispatch]);
}
并且在我的thunk
文件中:
export function checkCookieOne() {
return async dispatch => {
const hasCookie = Boolean(window.localStorage.getItem('cookieOne') || false);
dispatch(store.actions.toggleCookieOneValue(hasCookie));
};
}
export function checkCookieTwo() {
return async dispatch => {
const hasCookie = Boolean(window.localStorage.getItem('cookieTwo') || false);
dispatch(store.actions.toggleCookieTwoValue(hasCookie));
};
}
为了使其更具可读性,我想将代码合并为单行返回。
所以,来自:
export function checkCookieOne() {
return async dispatch => {
const hasCookie = Boolean(window.localStorage.getItem('cookieOne') || false);
dispatch(store.actions.toggleCookieOneValue(hasCookie));
};
}
对于这样的事情(我的尝试)-请记住,dispatch
没有在此文件中声明,而仅在hooks.js
中声明:
export async function checkCookieOne() => dispatch(store.actions.toggleCookieOneValue(checkGivenCookieExists('cookieOne')));
但是那是无效的语法。它抱怨箭头功能,说:
'{'或';'预期。
如何将其转换为一行?
export function checkCookieOne() { return async dispatch => dispatch(store.actions.toggleCookieOneValue(checkGivenCookieExists('cookieOne'))); }
这可以用,但不完全是我想要的
答案
尝试一下
let checkCookieOne = async () => dispatch(store.actions.toggleMyCookieValue(checkGivenCookieExists('cookieOne')));
export checkCookieOne;
// Or maybe...
export let checkCookieOne = async () => dispatch(store.actions.toggleMyCookieValue(checkGivenCookieExists('cookieOne')));
以上是关于如何返回异步箭头功能?的主要内容,如果未能解决你的问题,请参考以下文章