我没有太多的运气使用redux版本的React-Router。当我将产品添加到购物车中时,位置确实会改变,但页面不会更新。
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import createHistory from 'history/createBrowserHistory';
import { ConnectedRouter, routerMiddleware } from 'react-router-redux';
import reducers from './reducers';
import App from './components/app';
const history = createHistory();
const store = createStore(
reducers,
applyMiddleware(routerMiddleware(history), thunk)
);
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
</Provider>,
document.getElementById('app')
);
import React from 'react';
import { BrowserRouter as Router, Link, Route } from 'react-router-dom';
import Cart from '../containers/cart';
import Home from './home';
import Checkout from '../containers/checkout';
import Products from '../containers/products';
const App = () => (
<Router>
<div className="app">
<Route exact={true} path="/" component={Home} />
<Route path="/cart" component={Cart} />
<Route path="/checkout" component={Checkout} />
<Route path="/products/:id/:url_title" component={Products} />
</div>
</Router>
);
export default App;
./减速器
import { reducer as FormReducer } from 'redux-form';
import { combineReducers } from 'redux';
import { routerReducer } from 'react-router-redux';
const rootReducer = combineReducers({
router: routerReducer,
other: otherReducers
});
export default rootReducer;
./行动
import { push } from 'react-router-redux';
export function addProduct(props) {
return dispatch =>
axios.post(`${ROOT_URL}/api`, props, config)
.then(response => {
dispatch(push('/cart'));
})
}
尝试将app.js
连接到redux存储区,并通过MapStateToprops
注入路由器
道具。即使您没有显式地使用该道具,但现在只要该道具发生变化,组件就应该重新呈现它自己及其子组件。
react-router
还提供了一个wishrouter
更高阶组件来执行类似的操作。但是,在组件树的多个级别上使用ShouldComponentUpdate
的应用程序中,我遇到了一些问题。
问题内容: 我有一个使用redux和react-router的通用react应用程序。 我有以下几种路线: 等等 每个路由都需要来自API的数据。目前,我在Navigation组件中的元素调度了一个async action ,该操作使用来自该路线的API中的数据填充商店。 对于MVP,我只是在路线更改时用新的帖子内容覆盖商店中的内容,这样我们就可以获取API上的所有新内容。 我已经意识到在按钮上设
问题内容: 在此请忍受,因为这个问题与我使用React,Redux或react- redux的第一个测试应用有关。Docs使我步入正轨,并且我有一个可以正常工作的模拟银行应用程序。我的状态对象大致如下所示: 我只有两个动作: 1. CHANGE_HASH(如网址哈希中所示)。此操作始终按预期工作,而reducer所做的只是更新state.activePageId(是的,我正在克隆状态对象而不是对其
我尝试使用localStorage保存输入元素的位置。我保存了输入元素的位置,在重新加载页面后,我可以访问它,但在刷新页面后,它始终处于默认位置。(值真/假) HTML: JS: 明确地说,我正在创建chrome扩展(选项页)。 编辑:
问题内容: 我正在使用react-router寻找一种更新页面URL /哈希的方法,而无需路由器重新渲染整个页面。 我正在开发一个全页轮播,并且希望每个幻灯片都有其自己的URL(允许用户刷新页面并返回正确的幻灯片)。转盘稍后将进行类似于此演示的滑动,这意味着 下 一张幻灯片已预渲染。 我的旋转木马的精简版在这里提供。 当前的幻灯片更改如下所示: 这可以正常工作,没有URL更新。我真正想要的是: 这
所以基本上,当我尝试从其中一个路由更改路由时,我调用this.props.history.push('/newPath')。浏览器url的变化,但是新的路径没有得到匹配(我假设),因为渲染功能的相同组件被调用,没有什么变化。. 指数带路由器的tsx: 我尝试从中导航的组件使用connect函数连接到redux存储。我曾尝试将其包装到withRouter()HOC中并删除连接,但没有成功。我正在调用
当我滚动时,我正在使用。当您滚动到底部时,它将更新数据。更新数据后。返回顶部。理想情况下,我希望保留中的职位。我该怎么做呢? InnerClass