2016-10-12 21 views
0

私はPubnubを使用して、データをReactネイティブアプリにプッシュしてプルダウンし、リストに表示します。何らかの理由で履歴のコールバックには至っていませんが、私が購読しているチャンネルを通じてメッセージを受け取っています。ストレージ&再生が有効です。ここで何が起こっているか考えてみましょうか?反応ネイティブアプリでPubnubの履歴コールバックに達しません

import React from 'react' 
import { 
    StyleSheet, 
    Text, 
    View, 
    TouchableHighlight, 
    ListView, 
} from 'react-native' 

import PubNub from 'pubnub'; 

var username = 'Jenny'; 
const channel = 'list'; 

const publish_key = 'XXXXXXXXXXXXXXXXXXXXXXXXX'; 
const subscribe_key = 'XXXXXXXXXXXXXXXXXXXXXXXXX'; 

const listSections = ['NOW', 'LATER', 'PROJECTS']; 

const pubnub = new PubNub({       
    publishKey : publish_key, 
    subscribeKey : subscribe_key, 
    ssl: true, 
    uuid: username 
}); 

export default class MyList extends React.Component{ 

    constructor(){ 
     super(); 
     var ds = new ListView.DataSource({ 
      getSectionHeaderData: (dataBlob, sectionID) => dataBlob[sectionID], 
      getRowData: (dataBlob, sectionID, rowID) => dataBlob[sectionID + ':row' + rowID], 
      rowHasChanged: (row1, row2) => row1 !== row2, 
      sectionHeaderHasChanged : (s1, s2) => s1 !== s2, 
      }); 
     } 
    } 


    componentWillMount() { 

     this.connect(); 

     pubnub.addListener({ 
      message: (m) => this.success([m.message]) 
     }); 

     pubnub.subscribe({ 
      channels: [channel], 
     }); 

    } 

    connect() { 
     console.log("connect"); 

     pubnub.history(
      { 
      channel: channel, 
      count: 50, 
      callback: (response) => { 
       console.log(response); 
      } 
     ); 
    } 

    success(m){  
     /*Do some data manipulation for the list here */ 

    } 

    render(){ 

     return(
      <View style={styles.container}> 
       <ListView 
        dataSource = {this.state.dataSource} 
        renderRow = {(rowData) => 
        <View style={styles.rowContainer}> 
         <Text style={styles.rowText}>{rowData}</Text> 
        </View>} 
        renderSectionHeader = {(headerData) => 
         <Text style={styles.header}>{headerData}</Text>} 
        enableEmptySections = {true} 
       /> 
      </View> 
      ) 
    } 
} 

答えて

0

v4 JavaScript SDKを使用しています。

pubnub.history(
    { 
     channel: channel, 
     count: 50 
    }, 
    function (status, response) { 
     console.log(status, response); 
    } 
); 

これはV4の微妙な変化であり、あなたが他の軽微な変更のためのv3 to v4 migration guideを確認することができます:あなたはcallback別のパラメータである必要があります。

+1

素晴らしい。今すぐ動作します。ありがとうございました! –

関連する問題