带有异步和等待的箭头函数在本机反应中
Posted
技术标签:
【中文标题】带有异步和等待的箭头函数在本机反应中【英文标题】:Arrow functions with async and await in react native 【发布时间】:2017-09-28 19:25:33 【问题描述】:我正在尝试将AsyncStorage
中的数据保存在react-native
中。我想异步保存它,所以使用async
和await
关键字。
async onPositiveClickListener = () =>
// user has completed product tour_end
try
await AsyncStorage.setItem("@ProductTour:key", "true");
const navigate = this.props.navigation;
navigate("DashboardScreen");
catch (error)
console.log(error);
;
保存程序时出错
SyntaxError: Unexpected token, expected ( (40:32)
38 | ;
39 |
> 40 | async onPositiveClickListener = () =>
| ^
41 | // save user has completed product tour_end
42 | try
43 | await AsyncStorage.setItem("@ProductTour:key", "true");
Hide Stack Trace
SyntaxError: Unexpected token, expected ( (40:32)
38 | ;
39 |
> 40 | async onPositiveClickListener = () =>
| ^
41 | // save user has completed product tour_end
42 | try
【问题讨论】:
【参考方案1】:异步命名箭头函数应该声明为
const onPositiveClickListener = async () =>
// user has completed product tour_end
try
await AsyncStorage.setItem("@ProductTour:key", "true");
const navigate = this.props.navigation;
navigate("DashboardScreen");
catch (error)
console.log(error);
;
【讨论】:
AsyncStorage 接受三个参数,key 和 value,它们都是 string ,以及一个回调函数,所以你只能使用 AsyncStorage 设置 string。您可以做的是将您的其他数据类型转换为带有JSON.stringify(obj)
的字符串并在检索后对其进行解析,这样您就可以保存任何其他数据类型以上是关于带有异步和等待的箭头函数在本机反应中的主要内容,如果未能解决你的问题,请参考以下文章