私はコミュニティに新人ですが、私の質問が以前に答えられたかどうかを調べるために1週間は探し続けましたが、Meteor + React - セッション変数が反応的に反応しない
私は、巨大なXMLファイルをサーバーに保存して読み込み、そこからいくつかのデータを抽出して表示し、次に他の機能を起動する必要のあるアプリケーション(Meteor + Reactの新機能)を構築していますこれは別のページのデータを取得したので、このXMLをJSONオブジェクトにセッション変数に格納することをお勧めしますが、最初の単純なデータ抽出が反応的に動作しないため、すぐに問題が発生しました。
これはコードです:
import React, { Component, PropTypes } from 'react';
import ReactDOM from 'react-dom';
import { Meteor } from 'meteor/meteor';
import { createContainer } from 'meteor/react-meteor-data';
FlightPlan = new Mongo.Collection("flightPlan");
export default class FlightPlanWrapper extends Component {
constructor(props) {
super(props);
}
xmlDemo(){
Meteor.call('xmlDemo',function(error,flightPlanXML){
let tempXML = flightPlanXML;
Session.set({
'flightPlanXML': flightPlanXML
});
});
}
render() {
const flightNumber = Session.get('flightPlanXML') ? (
<span className="flightNumber">{Session.get('flightPlanXML').FlightPlan.FlightInfo.aTCCallsign}</span>
) : '';
return (
<div id='flightPlan' className='contentWrapper'>
<h2>
Flight Plan
</h2>
{
Session.get('flightPlanXML') ? flightNumber :
<div>
<button onClick={this.xmlDemo.bind(this)}>click me</button>
</div>
}
</div>
);
}
}
export default createContainer (() => {
Meteor.subscribe('flightPlan');
return {
'resolutions': FlightPlan.find().fetch()
};
}, FlightPlanWrapper);
だから私はシステムの私の理解は全く正しいかどうかはわからないが、私はこのコードの簡略版でやりたいことのいずれかの表示にありますボタンまたはそのセッション変数の内容
ボタンをクリックした後にページを変更した後、同じページに戻ったときにコンテンツが正しく更新されることにご注意ください。
更新:(FlightPlanContent.jsx)という名前のファイルとFlightPlanForm.jsxという別のファイルのボタンに出力されるフライト番号のコードを分割しようとしました。 : } ' でも結果は同じです。出力は反応しないので、ページを変更した後に変更されます(リフレッシュではありません)。セッション変数をダンプするので)。 –
Fabio
次に、この方法で(FlightPlanWrapper.jsx)のレンダリングを行います。 '{Session.get( 'flightPlanXML')?