首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >异步保存数据

异步保存数据
EN

Stack Overflow用户
提问于 2017-01-11 21:44:40
回答 2查看 61关注 0票数 2

我想将2个文本输入的值存储在我的手机中,然后使用这些数据。

我正在尝试保存数据,但只存储了一个字符...有人能给我解释一下为什么吗?

代码语言:javascript
运行
复制
import React, { Component } from 'react';
import  {
TouchableHighlight,
TouchableOpacity,
AsyncStorage,
AppRegistry,
StyleSheet,
Navigator,
TextInput,
ListView,
onPress,
Button,
Image,
Text,
View,
} from 'react-native';

var styles = require('../style.js');

class config extends React.Component {
constructor(props) {
 super(props);
 this.state = { local: 'test',
                ext: 'test_ext',
              };
 }

componentWillMount() {
    AsyncStorage.getItem("myKey").then((value) => {
        this.setState({"myKey": value});
    }).done();
}

getInitialState() {
   return { };}

saveData(value) {
   AsyncStorage.setItem("myKey", value);
   this.setState({"myKey": value});
}

render(){
//  console.log({IP_LOCAL});
return(

  <View>

  <View style={styles.container}>
    <Image source={require('../../img/mob.png')} style={styles.mob_logo}/>
  </View>

    <View style={{marginTop:100}}>
      <Text style={{fontSize:20}}>Hello From config component</Text>
      <Text>id: {this.props.id}</Text>
      <Text>name: {this.props.name}</Text>
      <Text>name: {this.props.myVar}</Text>

      <Text style={styles.saved}>
          {this.state.myKey}
      </Text>
        <Text> </Text>
      <TextInput
        style={{height: 40, borderColor: 'gray', borderWidth: 1}}
        onChangeText={(local) => this.saveData(local)}
        value=""
      />
    </View>
    </View>
)
 }
}

module.exports = config;
EN

回答 2

Stack Overflow用户

发布于 2017-01-11 21:57:45

我用来修复

代码语言:javascript
运行
复制
 componentWillMount() {
    AsyncStorage.getItem("local").then((value) => {
        this.setState({"local": value});
    }).done();
    AsyncStorage.getItem("ext").then((value) => {
        this.setState({"ext": value});
    }).done();


}

getInitialState() {
   return { };
 }

 saveData(target, value, i) {
  if (i === 1){
    AsyncStorage.setItem("local", value);
     this.setState({local: value});
  }
   else{
       AsyncStorage.setItem("ext", value);
       this.setState({ext: value});
   }
 }

现在它开始工作了

票数 0
EN

Stack Overflow用户

发布于 2017-01-11 22:07:22

好的,我认为你应该这样做:

代码语言:javascript
运行
复制
var count;//declare global variable

saveData(value) {
    count++;
   AsyncStorage.setItem(""myKey"+count", value);//you can store distinct //key
   this.setState({"myKey": value});
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41592597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档