Я загружаю страницу с параметром url и затем сбрасываю на корневой URL с помощью browserhistroy.push (), в первый раз, когда он не работает, и когда я вижу логи, props.param показывает то же старое имя URL-адреса. Второй раз, когда я снова нажал, он работает, как ожидалось.
Примечание: использование React с redux, использование «response-router».
Код:
route.js
{
path: '/:menuitem',
name: 'Products',
getComponent(nextState, cb) {
const importModules = Promise.all([
import('views/Products/modules/reducer'),
import('views/Products/modules/sagas'),
import('views/Products'),
]);
const renderRoute = loadModule(cb);
importModules.then(([reducer, sagas, component]) => {
injectReducer('search', reducer.default);
injectSagas(sagas.default);
renderRoute(component);
});
importModules.catch(errorLoading);
},
},
В компоненте: настройка параметра / URL
var urlname = options[secIndex][itemIndex].name;
urlname = urlname.replace(/\s+/g, '-').toLowerCase();
console.log(urlname);
browserHistory.push('/'+urlname);
this.props.leftStripActions.onFilterByLens(options[secIndex][itemIndex]);
Сброс в root:
browserHistory.push ( '/'); [Это не работает в первый раз enter code here
]
Любая помощь будет принята с благодарностью !!!