나는 반응이 처음이므로 어떤 도움도 받으실 수 있습니다!하나의 구성 요소에서 다른 구성 요소로 객체를 반품합니다.
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 : 나는에 UserPage 구성 요소에서 링크 태그에서 개체를 전달할 수있는 방법
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;
SchoolPage Component를 선택하여 사용하십시오.
저는 Link Tag를 통해 객체를 전달할 수 없다는 것을 조사하고 알았습니다. 그래서 React에서 어떻게 전달할 수 있습니까? 너의 도움을위한 Tks!
나는 UserPage Component에서 SchoolPage Component로 {name : ABC}와 같은 1 Object를 전달할 수있는 방법을 의미합니다. –
@ M.Tae Link에서는 불가능하다고 생각합니다. 당신은 응용 프로그램의 저장소에서 ID로 개체를 얻을 수 있습니다. 당신은 그것에 대한 귀하의 SchoolPage 구성 요소 위에 컨테이너를 작성할 수 있습니다. – viktarpunko