2016-08-13 17 views
0

私は反応が新しく、状態と小道具を使い始めました。 私が試みてきたことは、いくつかのデータを取得し、それにいくつかのカードビューを設定することでした。
これは私のコードは、これまでどのように見えるかです:リアクションネイティブ状態変数を変更する

class Two extends React.Component { 
constructor(props) { 
    super(props); 
    this.state = { 
     day: "Monday", 
    }; 
    } 

// Getting monthly schedule 
    getSchedules =() => { 
     fetch("http://xxxxxx/getschedules.php", {method: "GET"}) 
     .then((response) => response.json()) 
     .then((responseData) => { 
      AlertIOS.alert(
       "GET Response", 
       "Search Query -> " + responseData.result.length) 
       this.setState({day: responseData.result[1].day}); //changing state but nothing changes 
     }) 
     .then((data) => { 
     console.log(data); 
     }) 
     .catch(function(err) { 
     console.log(err); 
     }) 
     .done(); 
    } 

    render() { 
      <TouchableOpacity onPress={this.getSchedules}> 
       <View style={styles.card}> 
       <Text>{this.state.day}</Text> 
       </View> 
       </TouchableOpacity> 
      } 
} 

私はテキスト値を変更することになったが、何も起こりませんされているカードをクリックした場合。また、カードをクリックせずにページが読み込まれたときに状態を自動的に変更する方法はありますか? ご協力いただければ幸いです!あなたたonPressコードで

+0

の代わりに 'setState' 'SetState' – Cherniv

+0

@Cherniv私の悪い、申し訳ありません。それを指摘してくれてありがとう。私はそれを変更しましたが、それでも私の変数はonPressの同じ – KeykoYume

答えて

1

<TouchableOpacity onPress={this.getSchedules}>

それだけで関数参照を渡すことにより<TouchableOpacity onPress={this.getSchedules.bind(this)}>

をする必要がありますthisコンテキストはgetSchedulesに渡されていません。

+0

バインディングと変わりません。この記事を読んでください。https://daveceddia.com/avoid-bind-when-passing-props/ – stereodenis

0

フェッチが機能していることを確認しましたか?

私はFacebookのURLの例で、あなたのコードを試してみましたが、私は

ネットワーク要求は、コンソール(CMD + D - デバッグ)に

失敗だ

追加するthis SO answerの指示に従っドメインは例外リストのinfo.plistにあり、それは働いた:)

info.plistファイルはXcodeにあり、右クリックして "Open as> Source Code"を選択すると簡単に更新できます。上記のコードをコピーして貼り付けることができます。

+0

はい、私はそれを行いました。はい、それは正しくデータを取り込んでいます(私はそれが動作するかどうかを確認するためにコンソールに印刷しましたすべてがうまくいっている) – KeykoYume

関連する問題