Я пытался найти способ использования данных, переданных через параметр маршрутизации Flowrouters, с помощью reactjs.
Я пытаюсь добиться того, чтобы когда пользователь создает ферму с определенными атрибутами и вставляет эти данные в коллекцию монго, тогда в другом представлении я мог бы обновить значения. поэтому мне нужно было бы каким-то образом передать _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, данные отлично работают с реквизитами. но когда я пытаюсь отправить изменения, страница перезагружается и приложение вылетает. И это, вероятно, потому, что значение свойства равно null, поскольку оно не было передано этому компоненту.
Каким было бы решение, чтобы я получал значение postId из URL-адреса при каждом обновлении?