我有一个主要组件,我拥有所有状态。 在这里,我将这个状态传递给了两个不同的组件。 问题是 - 我需要在两个不同的链接中打开这两个组件(<TimeTracker />
,<TimeCalendar />
)。使用道具在ReactJS中路由
单独呈现它们。
我该如何使用React-router?可能吗?
贝娄是我的主要成分
export default class App extends React.Component {
constructor() {
super();
this.initStorage();
this.state = {
startTime: this.getStoreItem('startTime') || 0,
currentTask: this.getStoreItem('currentTask') || '',
results: this.getStoreItem('results') || [],
calendarResults: this.getStoreItem('calendarResults') || []
};
}
/**
create an object in localStorage for timer data if it is not present
*/
initStorage() {
let data = localStorage.getItem('timeData');
if (!data) {
localStorage.setItem('timeData', JSON.stringify({}));
}
}
/**
* get item value from storage
* @param key - item name
*/
getStoreItem = (key) => {
const data = JSON.parse(localStorage.getItem('timeData'));
return data[key];
}
/**
* change item value in storage
* * @param key - item name
* @param value - new value for item
*/
setStoreItem = (key, value) => {
const data = JSON.parse(localStorage.getItem('timeData'));
data[key] = value;
localStorage.setItem('timeData', JSON.stringify(data));
this.setState({
[key]: value
});
}
render() {
const { startTime, currentTask, results, calendarResults } = this.state;
return (
<MuiThemeProvider>
<div>
<TimeTracker
results={results}
setStoreItem={this.setStoreItem}
startTime={startTime}
currentTask={currentTask} />
<TimeCalendar calendarResults={calendarResults} />
</div>
</MuiThemeProvider>
);
}
}
我在路由是新的,并没有发现一些类似的例子代码。
请帮助理解如何做到这一点。 我可以为他们做路由,但是如果组件没有道具。 但在我的例子中我很困惑
先谢谢了!
你有没有试过react-router的' '? –
tenor528
是的,但我不确定它应该如何在我的示例中看起来。 我可以在渲染中使用它吗?我的主要组件应该在渲染中返回以及如何通过'' –