Glu*_*ear 21 javascript json state reactjs
我在React中有(例如)两个组件.第一个app.js
是根组件.它导入一些JSON
数据并将其放入其中state
.这工作正常(我可以在React devtools中看到它).
import data from '../data/docs.json';
class App extends Component {
constructor() {
super();
this.state = {
docs: {}
};
}
componentWillMount() {
this.setState({
docs: data
});
}
render() {
return (
<Router history={hashHistory}>
<Route path="/" component={Wrapper}>
<IndexRoute component={Home} />
<Route path="/home" component={Home} />
<Route path="/docs" component={Docs} />
</Route>
</Router>
);
}
}
Run Code Online (Sandbox Code Playgroud)
第二个,docs.js
是为了显示这些JSON
数据.要做到这一点就需要访问state
的app.js
.目前它出错了,我知道为什么(this
不包括app.js
).但我怎能通过state
从app.js
到docs.js
?
class Docs extends React.Component {
render() {
return(
<div>
{this.state.docs.map(function(study, key) {
return <p>Random text here</p>;
})}
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
pwo*_*laq 14
这样做的正确方法是将状态传递props
给Docs
组件.
但是,因为您正在使用React Router
它,所以可以通过不同的方式访问它:this.props.route.param
而不是默认方式this.props.param
所以你的代码应该或多或少看起来像这样:
<Route path="/docs" component={Docs} docs={this.state.docs} />
Run Code Online (Sandbox Code Playgroud)
和
{this.props.route.docs.map(function(study, key) {
return <p>Random text here</p>;
})}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23825 次 |
最近记录: |