আপনি যা করতে পারতেন তা গ্রহণযোগ্য উত্তরের সিমিলিরি ব্যবহার is react
এবং react-router
নিজেই আপনি প্রদান করতেhistory
আপত্তি, যেগুলো তোমরা ও একটি ফাইলে সুযোগ তারপর রপ্তানি করতে পারেন।
ইতিহাস.js
import React from 'react';
import { withRouter } from 'react-router';
let globalHistory = null;
class Spy extends React.Component {
constructor(props) {
super(props)
globalHistory = props.history;
}
componentDidUpdate() {
globalHistory = this.props.history;
}
render(){
return null;
}
}
export const GlobalHistory = withRouter(Spy);
export default function getHistory() {
return globalHistory;
}
এরপরে আপনি ইতিহাসের পরিবর্তনশীল আরম্ভ করতে কম্পোনেন্টটি আমদানি করুন এবং মাউন্ট করুন:
import { BrowserRouter } from 'react-router-dom';
import { GlobalHistory } from './history';
function render() {
ReactDOM.render(
<BrowserRouter>
<div>
<GlobalHistory />
//.....
</div>
</BrowserRouter>
document.getElementById('app'),
);
}
এবং তারপরে আপনি যখন আপনার অ্যাপ্লিকেশনটি মাউন্ট হয়ে গেছেন তখন তা কেবল আমদানি করতে পারেন:
import getHistory from './history';
export const goToPage = () => (dispatch) => {
dispatch({ type: GO_TO_SUCCESS_PAGE });
getHistory().push('/success');
};
আমি এমনকি এনএমপি প্যাকেজ তৈরি করেছিলাম যা কেবল এটি করে।