簡體   English   中英

React / Meteor / Flowrouter:傳遞數據

[英]React / Meteor / Flowrouter: Passing data

我一直在試圖找出一種通過reactjs使用通過flowrouters路由參數給出的數據的方法。

我正在嘗試實現的是,當用戶創建具有某些屬性的服務器場並將該數據插入mongo集合時,則可以在另一個視圖中更新值。 所以我需要以某種方式獲取用戶_id,例如,傳遞到此更新視圖中。

目前我有如下代碼:

FlowRouter.route("/serviceplan/general/basic/:postId",{

name: "BasicInformation",
action(params){
    renderTestLayout(<BasicInfo params={params}/>);
}});

查看代碼:

BasicInfo = React.createClass({

 propTypes: {

     params: React.PropTypes.object.isRequired,
 },

mixins: [ReactMeteorData],

getMeteorData(){
    return{
        owner: Farms.findOne({farmname: this.props.params.postId})

    }
},

updateFarm(){
    console.log("updated!");
},

render(){

    console.log(this.data.owner);
    console.log(this.data.owner.address);

    return( 
        <div>

            <div className="col-sm-4">
            <h1>Basic information</h1>
            <form onSubmit={this.updateFarm}>
                <label>Name:</label>
                    <input type="text" ref="fname" className="form-control" defaultValue=""/><br></br>

                <label>Address:</label>
                <input type="text" ref="address" className="form-control" defaultValue=""/><br></br>

                <label>Postalcode:</label>
                <input type="text" ref="postalcode" className="form-control" defaultValue=""/><br></br>

                <label>Area:</label>
                <input type="text" ref="municipality" className="form-control"defaultValue=""/><br></br>

                <input type="submit" value="Update" className="btn btn-default" onClick={this.updateFarm}/>
            </form>
            </div>
        </div>
    );
}

這里的問題是當我重定向到此BasicInfo組件視圖時,數據與props可以正常工作。 但是,當我嘗試提交更改時,頁面會重新加載,應用程序崩潰。 這可能是因為prop值為null,因為尚未將其賦給該組件。

有什么解決方案,所以每次刷新時我都會從URL中獲取postId值?

我找到了應用崩潰的原因和解決方案。

我試圖訪問不存在的數據。

if(this.data.owner){

        farmname = this.data.owner.farmname;
        address = this.data.owner.address;
        postalcode = this.data.owner.postalcode;
        municipality = this.data.owner.municipality;
        region = this.data.owner.municipality;

可行的解決方案是在訪問mongo數據對象之前檢查它是否不為null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM