AsyncStorageに格納されている数値(文字列として保存されています)をネイティブの数値に変換するにはどうすればよいですか?AsyncStorageに格納されている変数を変換してNumberに変換します。
それは、このような文字列を数値に変換する働き:
myNum = Number('3'); // THIS WORKS
しかし、これは動作しません:私はAsyncStorageから私の変数を取得して、状態として格納しています
myNum = Number(this.state.myStateNum); // This does not work, returns zero
myNum = Math.floor(this.state.myStateNum); // This does not work, returns zero
けどなぜ私はそれを数値に変換できないのか分かりません。これは私が非同期を使用して取得する方法である
async function setItem(key, value) {
try {
await AsyncStorage.setItem(key, value);
console.log(key, value);
return value;
} catch (error) {
}
}
setVar = setItem('myStateNum', '3');
:
async componentWillMount() {
const myStateNumGet = await AsyncStorage.getItem('myStateNum');
if (myStateNumGet) {
this.setState({ myStateNum: myStateNumGet });
} else {
this.setState({ myStateNum: false });
}
}
任意の提案/ヘルプは素晴らしいことだ
それはこのことができます場合は、私が使用して非同期の設定方法です。あなたはあまりにも他の方法を試すことができますが、上記のあなたのために働く必要があります
myNum = parseInt(this.state.myStateNum);
あなたはAsyncStorage.getItemから番号を取得している場合は、SETSTATEを使用する前にそれを慰める、参照してください質問の重複しています。 else文が動作しているようです。 – Hariks
私はもともと同じものだと思っていましたが、 'this.state.myStateNum'を呼び出すと変数が文字列として渡されています – Roger
これは文字列になります。渡す前に' this.state.myStateNum'の値は何ですか'parseInt' – Hariks