2017-06-12 8 views
0

車が価格を変更するたびに、アプリからユーザーに通知が送信されます。 1時間ごとに実行されるコードで実行されます。リアクションネイティブアップデートAsyncStorageアイテム

コードは以下の通りです:

backgroundData(){ 
     BackgroundTimer.setInterval(() => { 

     AsyncStorage.getItem('key').then(JSON.parse).then(items => { 
      this.setState({value: items}); 
     }) 

     if(!this.state.value == 0 || !this.state.value == null){ 
      const promises = this.state.value.map((item, index) => 
      fetch(`URL/GetDetalhesViatura?CarID=${item[0]}`) 
      .then(response => response.json()) 
     ) 
      Promise.all(promises).then(viaturas => this.setState({viaturas: flatten(viaturas)})) 

      const newItem = [] 
      this.state.viaturas.map((item, index) => 
      newItem.push([item.Preco, item.CodViatura]), 
      this.setState({ stateArray: newItem }) 
     ) 

      const newItem2 = [] 
      this.state.value.map((item, index) => 
      newItem2.push([item[1], item[0]]), 
      this.setState({stateArray2: newItem2}) 
     ) 

      var results = new Array(); 
      //CODE TO CHECK ARRAYS FOR DIFFERENT PRICES 
      this.setState({results: results}) 

      if(!this.state.results == 0 || !this.state.results == null){ 
      const promises = this.state.results.map((item, index) => 
       fetch(`URL/GetDetalhesViatura?CarID=${item[1]}`) 
       .then(response => response.json()) 
      ) 
      Promise.all(promises).then(viaturas2 => this.setState({viaturas2: flatten(viaturas2)})) 

      this.state.viaturas2.map((item, index) => 
       PushNotification.localNotification({ 
       message: "Notification", 
       }) 
      ) 
      } 
     } else { 
      console.log('empty') 
     } 
     }, 9999999); 
    } 

まず、それは私のAsyncStorage上の現在のデータをfetchs。データがある場合は、APIから新しいデータをフェッチした後、両方のデータを比較し、異なる価格がある場合は通知をユーザーに送信します。

問題は、価格が変更された場合、車ごとに'key'を新しい価格で更新する必要があるか、アプリがユーザーに通知を送信し続けることです。

答えて

2

私はAsyncStorageで欲しかったものを手に入れることができませんでしたので、私はと呼ばれる簡単なストアのラッパーを使用する必要がありました:https://github.com/jasonmerino/react-native-simple-store

は、私は、コードの多くを変更する必要がありましたが、その後、私はデータIを変更することができましたそれを欲し、救いなさい。

シンプルストアでは、個々の配列やオブジェクトを同じキーに保存するため、データを操作しやすくなりました。

関連する問題