2016-11-02 4 views
0

私はショッピングチェックリストを作成しており、チェックしたアイテムをローカルストレージに保存したいと考えています。しかし、AsyncStorageのhasntが未定義のオブジェクトここAsyncStorageが '未定義はオブジェクトではありません'と言っています

ではないと言って私のために働いて設定することは私のコードです:

import React from 'react'; 
import { StyleSheet, Dimensions } from 'react-native'; 
import { Container, Content, List, ListItem, Text, CheckBox, AsyncStorage } from 'native-base'; 

export default class ShoppingListItem extends React.Component { 
    constructor(props) { 
    super(props); 
    this.saveCheck = this.saveCheck.bind(this) 
    this.state = { 
     checked: false 
    } 
    } 

    render() { 
    return (
     <ListItem style={styles.table}> 
     <CheckBox 
      checked={this.state.checked} 
      onPress={this.saveCheck}/> 
     <Text>{this.props.item[0]} {this.props.item[1]} {this.props.item[2]}</Text> 
     </ListItem> 
    ); 
    } 

    // componentWillMount() { 
    // AsyncStorage.getItem(this.props.key).then((value) => { 
    //  this.setState({checked: value}); 
    // }).done(); 
    // } 

    saveCheck() { 
    console.log(this.state.checked) 
    this.setState({checked: !this.state.checked}) 
    AsyncStorage.setItem('checked', JSON.stringify(this.state.checked)) 
    } 
} 
+0

からAsyncStorageを削除するには、なしでこれを試してみましたJSON.stringifyを使用すると、ブール値を格納するだけなので、それが問題なのかどうかだけは分かりません。 –

+0

はい、私は同じエラーを受け取りました。 – tgaribal

+0

'JSON.stringify({checked:this.state.checked})はどうですか? –

答えて

3

問題はreact-によってスローされ、この警告を参照してくださいラインでthis.props.key

です

enter image description here

ネイティブだからあなたの小道具は、いくつかのOに'key'を変更名前は、すべてが期待どおりに動作するはずです。

はまた

import { StyleSheet, Dimensions, AsyncStorage} from 'react-native'; 

'に反応し、ネイティブ'

変更

import { StyleSheet, Dimensions } from 'react-native'; 

からAsyncStorageをインポートすると 'ネイティブ・ベース'

+1

AsyncStorageの代わりにreact-nativeからインポートすると、私にとってうまくいきました。ありがとう! – Doug

+1

AscyncStorageを 'native-base'から削除すると、私のために働きました – NoloMokgosi

関連する問題