Я новичок в реактиве, поэтому любая помощь будет оценена!Пропустить объект от одного компонента к другому в реакторе
UserPage.js:
import React, { Component } from 'react';
import { Link } from 'react-router';
import request from 'superagent';
export default class UserPage extends Component {
constructor(props) {
super(props);
this.state = {
listSchool: []
};
}
componentWillMount() {
let self = this;
request
.get('/api/schools/')
.set('Accept', 'application/json')
.end(function (err, res) {
self.setState({ 'listSchool': res.body });
console.log(self);
});
}
render() {
let marginLeft = {
marginLeft: "10px"
};
return (
<div className="container">
<form className="form-inline">
<div className="form-group">
Xin chào: <label style={marginLeft}>{this.props.location.state.name} </label>
<div className="btn-group" style={marginLeft}>
<button type="button" className="btn btn-info">Choose Your School</button>
<button type="button" className="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span className="caret"></span>
<span className="sr-only">Toggle Dropdown</span>
</button>
<ul className="dropdown-menu">
{
this.state.listSchool.map(school => {
return (
<li key={school._id}>
<Link to={`schools/${school._id}`}
params={
{
user : {
id : this.props.location.state.id,
name : this.props.location.state.name,
},
school : {
id : school._id,
name : school.TenTruong
}
}
}>
{school.TenTruong}
</Link>
</li>
);
})
}
</ul>
</div>
</div>
</form>
</div>
);
}
}
SchoolPage.js:
import React, { Component } from 'react';
export default class SchoolPage extends Component {
constructor(props) {
super(props);
this.state = {
user : {},
school : {},
};
}
componentWillMount() {
console.log(this.props);
}
render() {
return (
<div>
Hello {this.props.params.id}
</div>
);
}
}
routes.js:
import React from 'react';
import { Route, IndexRoute } from 'react-router';
import Layout from './components/Layout';
import IndexPage from './components/IndexPage';
import UserPage from './components/UserPage';
import SchoolPage from './components/SchoolPage';
const routes = (
<Route path="/" component={Layout}>
<IndexRoute component={IndexPage}></IndexRoute>
<Route path="users/:id" component={UserPage}></Route>
<Route path="schools/:id" component={SchoolPage}></Route>
</Route>
);
export default routes;
Как я могу передать объект от Link тега из UserPage компонента в Компонент SchoolPage и используйте его.
Я искал и знал, что невозможно передать объект через тег Link, поэтому в React, как я могу его передать. Tks за вашу помощь!
Я имею в виду, как я могу передать 1 объект, как {name: ABC} из компонента UserPage в компонент SchoolPage –
@ M.Tae Я думаю, что это невозможно из Link. Вы можете получить некоторый объект по идентификатору из хранилища вашего приложения. Вы можете написать контейнер через свой компонент SchoolPage. – viktarpunko