【发布时间】:2020-08-12 15:53:38
【问题描述】:
我想构建一个单页登录系统,根据我在 React-Redux 商店中设置的状态呈现不同的页面。 render() {} 函数不会在 store 状态更新时更新。
App.js
import React from 'react'
import store from './redux/store'
import { Provider } from 'react-redux'
// Route to Renderer.js below
import Renderer from './Renderer'
class App extends React.Component {
render() {
return (
<Provider store={ store }>
<Renderer page={store.getState().page} />
</Provider>
)
}
}
export default App;
Renderer.js
import React, { Component } from 'react'
// Routes to my pages I plan to render
import Login from './routes/Login'
import About from './routes/About'
import Register from './routes/Register'
class Renderer extends Component {
render() {
let page = this.props.page
let returned
switch (page) {
case 'About':
returned = <About />
break
case 'Login':
returned = <Login />
break
case 'Register':
returned = <Register />
break
default:
returned = <About />
}
return returned
}
}
export default Renderer
我有一个链接到 Redux Action 的组件,它改变了 page 字段的状态。为简单起见,未显示此内容。确认了状态的变化,因为 Redux 开发工具告诉我,当我调度操作以更改 page Redux 状态时,状态发生了变化。当我更改 page 字段的 Redux 状态时,呈现的页面不会更新并停留在默认页面。
【问题讨论】:
标签: javascript reactjs redux react-redux react-router-dom