【cordova-react】値を動的に次ページに渡す方法

axiosなどの非同期通信を絡めた開発をしているとどうしても単純な画面遷移のことを忘れそうになってしまいます。

ただ単純に遷移だけするならば this.props.history.push({pathname: ‘/next’)}でいけますが、値をもって遷移だと始めたばかりの方は

?となってしまいがちですよね。基礎中の基礎なのでネットにもたくさん情報がありますが、コードには個人差があるのでどうしても

どれを参考にしたらいいか分からない、長くて知らない文法も書かれているから今の自分には理解し難いなど頭を抱えてしまうことも

多いと思います。自分も辛酸を嘗めてきた身ですので、ここでは可能な限り簡潔に書きまとめて同じ悩みを抱えてる方の助けに

なればいいなと思っています。分かりにくかったらごめんなさい。

 

とりあえず値をもって遷移させるコードがこちらです。↓


main.js

this.props.history.push({pathname: '/next', state: { name: this.state.name }});

 

現在の値であるstateを引数にして飛ばしています。これだけで次のページで値nameを扱うことができます。

 

めっちゃ簡単ですね。明解ですね。じゃあ次のページではどうやって受け取るの?ってなった時はこちら↓


next.js
constructor(props) {
    super(props);
    this.state = {
      name: this.props.location.state.name,
    }
}

this.props.location.state.nameとは、タグに格納されたname(値を)意味しています。つまり、前ページでタグで受け取った

値nameをthis.stateのnameキーに値として登録しています。

コンストラクタ内でconsole.log(prop)すると、locationタグの中にしっかりとnameの値が入っており

これで取ってきているのが確認できます。

これでnext.js内のrender(){}内で

{this.state.name}

と定義すればnameの値を表示させることができます。

ざっくりでしたがどうでしょうか。これがすらすら書けるようになれば初級者も卒業できて次のタスクも見えてくると思います。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG