0
私はテンプレートから構築しているReactJSアプリケーションを持っています。私は反応に慣れていない、コンポーネントにこのパターンがどのようにロードされているのはもちろんです。ネストされたコンポーネントのアクセス履歴[ReactJS]
入れ子コンポーネントルート内からhistory
にアクセスするにはどうすればよいですか?
app.js
const routes = {
path: '/',
indexRoute: { onEnter: (nextState, replace) => replace('/login') },
childRoutes: [
require('./routes/ticketing').default,
require('./routes/promotions').default,
...
]
};
ReactDOM.render((
<Provider store={store}>
<Router
history={history}
routes={routes}
/>
</Provider>
), document.getElementById('app'));
ルート/発券/ index.js
export default {
path: 'ticketing',
component: require('../../components/common/Layout').default,
indexRoute: { onEnter: (nextState, replace) => replace('/ticketing/printtickets') },
childRoutes: [
{
path: 'printtickets',
getComponent(nextState, cb){
System.import('./containers/printtickets').then((m)=> {
cb(null, m.default)
})
}
}
,
...
]
};
ルート/発券/コンテナ/ printtickets.js
import React from 'react'
export default class PrintTickets extends React.Component {
componentWillMount(){
const { history } = this.props; // THIS IS NULL
history.replaceState(null, 'analytics/dashboard') // ERROR
}
render() {
return (
<div />
)
}
}
可能重複[プログラムルータを使用して反応させる移動](https://stackoverflow.com/questions/31079081/programmatically-navigate-using-react-router) – caesay