[英]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.