Javascript 反应->;为什么我的react没有显示在没有刷新的情况下对状态所做的更改?
我有一个react应用程序,它会向你显示状态的长度,或者更像其中的项目,事情是这样的,但它不会实时显示,它只会在刷新后向你显示状态的更新长度,有我的主页、存储和还原文件。我的问题是如何解决这个问题,为什么会发生,是什么原因造成的,以及在哪里发生的 减速器:Javascript 反应->;为什么我的react没有显示在没有刷新的情况下对状态所做的更改?,javascript,reactjs,redux,redux-persist,Javascript,Reactjs,Redux,Redux Persist,我有一个react应用程序,它会向你显示状态的长度,或者更像其中的项目,事情是这样的,但它不会实时显示,它只会在刷新后向你显示状态的更新长度,有我的主页、存储和还原文件。我的问题是如何解决这个问题,为什么会发生,是什么原因造成的,以及在哪里发生的 减速器: import React from 'react' const reducers=(state={posts:[{}]}, action)=>{ switch(action.type){ case 'post':
import React from 'react'
const reducers=(state={posts:[{}]}, action)=>{
switch(action.type){
case 'post':
return{
...state,
posts: [...state.posts, {content: action.content}]
}
default:
return state
}
}
export default reducers
商店:
import {createStore, applyMiddleware} from 'redux'
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'
import rootReducer from './reducers'
import logger from 'redux-logger'
const persistConfig = {
key: 'root',
storage,
}
const persistedReducer = persistReducer(persistConfig, rootReducer)
export const store = createStore(persistedReducer,applyMiddleware(logger))
export const persistor = persistStore(store)
主页:
import React,{Component}来自“React”
从'react icons/fa'导入{FaHome,FaBell,FaHashtag,FaUser,FaSearch,fafeatherat}
从“反应图标/ai”导入{AiFillMessage}
从'react icons/md'导入{MdSettings}
从“react redux”导入{connect}
从“/Web Dev Projects/React/Amazon Clone/amazonclone/src/store”导入{store}”
从“react bootstrap”导入{Navbar、Nav、NavbarBrand、NaviItem、FormControl、Button}
导入“bootstrap/dist/css/bootstrap.min.css”
导入“./css/Home.css”
从“jquery”导入$
类Home扩展组件{
render(){
const{posts}=this.props;
const post=()=>{
dispatch({类型:'post',内容:'testpost'})
}
返回(
家
通知
发现
我
职位
post().val())}>post
{posts.length}
{posts.map(post=>{post.content})}
)
}
}
const mapStateToProps=(state={posts:[{}]})=>{
返回{
职位:state.posts
}
}
导出默认连接(MapStateTops)(主);
调度了哪些操作,它们的值是否正确,以及它们是否正确更改了状态。在你的问题中,我看不到你在哪里发送了会触发你问题中的案例“post”:
的东西。实际上,我在30分钟前找到了解决方案,问题是我的存储和reducer在components文件夹之外,奇怪。
import React, { Component} from 'react'
import {FaHome, FaBell, FaHashtag,FaUser, FaSearch,FaFeatherAlt} from 'react-icons/fa'
import {AiFillMessage} from 'react-icons/ai'
import {MdSettings} from 'react-icons/md'
import {connect} from 'react-redux'
import {store} from '/Web Dev Projects/React/Amazon Clone/amazonclone/src/store'
import {Navbar, Nav,NavbarBrand, NavItem, FormControl, Button} from 'react-bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'
import './css/Home.css'
import $ from 'jquery'
class Home extends Component {
render() {
const {posts} = this.props;
const post=()=>{
store.dispatch({type:'post', content: 'test post'})
}
return (
<div>
<Navbar bg='white' vraiant='dark'>
<NavItem>
<span className='homeLink'><FaHome size={25}></FaHome> Home</span>
<span className='homeLink'><FaBell size={25}></FaBell> Notifications</span>
<span className='homeLink'><FaHashtag size={25}></FaHashtag> Discover</span>
<span className='homeLink'><FaUser size={25}></FaUser> Me</span>
<span className='messageNotification'><AiFillMessage size={25}></AiFillMessage></span>
<span className='settingsButton'><MdSettings size={25}></MdSettings></span>
<span className='postButton'><FaFeatherAlt size={25}></FaFeatherAlt></span>
</NavItem>
</Navbar>
<div className='posts'>
<div className='postsHeader'>
<p>Posts</p>
</div>
<div>
<FormControl className='makePostField'placeholder='make a post'></FormControl>
<Button onClick={()=>post().val())}>Post</Button>
{posts.length}
{posts.map(post=><div>{post.content}</div>)}
</div>
</div>
</div>
)
}
}
const mapStateToProps=(state={posts:[{}]})=>{
return{
posts: state.posts
}
}
export default connect(mapStateToProps)(Home);