gpt4 book ai didi

reactjs - React 路由器重新渲染整个应用程序并重置 redux 状态树?

转载 作者:行者123 更新时间:2023-12-04 05:28:02 27 4
gpt4 key购买 nike

我已经尝试设置 React、redux、react-redux、react-router 和 react-redux-router,但每次我从一条路线过渡到另一条路线时,整个应用程序都会重新呈现,怎么可能我解决这个?我的意思是,我需要做的是至少让顶级组件保持原样并且不要丢失 redux 状态树,因为路由器转换会重置 redux 状态。

这些是我正在使用的包的版本:

“ react ”:“^0.14.6”,
“ react -dom”:“^0.14.6”,
"react-redux": "^4.0.6",
“ react 路由器”:“^2.0.0-rc5”,
"react-router-redux": "^3.0.0",
"redux": "^3.0.6"

这是我的路由配置:

export default (<Route path="/" component={App}>
<Route path="companies">
<Route path="create" components={CompaniesCreate}></Route>
<Route path="grid" components={CompaniesGrid}></Route>
</Route>
</Route>);

我的默认 index.js 导出:

ReactDOM.render(
<Provider store={store}>
<div>
<Router history={browserHistory} routes={Routes}/>
<DevTools />
</div>
</Provider>
, document.querySelector('.container'));

我的 ConfigureStore.js

const reduxRouterMiddleware = syncHistory(browserHistory);
const finalCreateStore = compose(
applyMiddleware(ReduxPromise, reduxRouterMiddleware),
DevTools.instrument()
)(createStore);

export default function configureStore(initialState) {
const store = finalCreateStore(rootReducer, initialState);
if (module.hot) {
module.hot.accept('../reducers', () =>
store.replaceReducer(require('../reducers'))
);
}
return store;
}

最后, reducer 的索引:

export default combineReducers({
...reducers
routing: routeReducer,
});

最佳答案

ListItem呈现一个 EnhancedButton ,它有一个名为 containerElement 的参数,你可以用 ReactRouter 调用它 Link成分。在 their docs for Link他们指定了如何使用它,下面是一个示例,您必须获取 react-router 的 Link 组件并将其用于在您的应用程序中导航。

import {Link} from 'react-router';

render() {
//removed props and other items for simplicity
return(
<ListItem
containerElement=Link
key={1}
primaryText="Crear"
linkButton={true}
href="/companies/create"
leftIcon={<CreateIcon />}
/>
);
}

关于reactjs - React 路由器重新渲染整个应用程序并重置 redux 状态树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35481764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com