更改为Asyncstorage后,如何保存和更新应用程序


render(){
const { navigate } = this.props.navigation;
if (this.state.isRefreshing) {
  return(
    <Spinner/>
  )
}
return(
  <Container style={style.container}>
    <Content>
      <List dataArray={this.state.list} renderRow={(data) =>
        <ListItem>
          <CheckBox onPress={() => this.saveLang(data.code)} checked={data.checked} />
            <Text style={style.black}> {data.title}</Text>
        </ListItem>
      }/>
    </Content>
  </Container>
)}

保存如何更新状态并应用所选语言

之后
saveLang(value){
AsyncStorage.setItem("language", value);
this.setState(
  {
    list: [
    {
      'code': 'ru',
      'title': 'Русский',
      'checked': value == 'ru'
    },
    {
      'code': 'en',
      'title': 'English  ',
      'checked': value == 'en'
    }
  ],
  isRefreshing: true,
  }
);
I18n.locale = value;}

刷新通过,但我不知道如何在背景模式下更新应用程序在此处输入图像描述

很难说而不了解您想发生的事情,但是AsyncStorage.setItem返回Promise,因此,如果您需要在完成后需要做某事,只需使用then

function saveLang(value) {
  AsyncStorage.setItem("language", value).then(() => {
    // Perform your refresh
  });
}

或或者,使用async/await语法:

async function saveLang(value) {
  await AsyncStorage.setItem("language", value);
  // Perform your refresh
}

相关内容

  • 没有找到相关文章

最新更新