redux 中间件

news/2024/10/19 19:40:52/

//actions.js

import {

FILEMS

} from './constants';

// 利用action来修改状态

export const Filems = (filems)=>{

return {type:FILEMS,filems};

};

//constants.js

export const FILEMS = 'FILEMS';

reducer.js

import {combineReducers } from 'redux'

import reducerFilem from './reducerFilem';

const reducers = combineReducers({

reducerFilem

});

export default reducers;

//reducerFilem.js

import {FILEMS} from './constants'

// 1.定义一个状态(数据)

let initialState = {

filem:[]

}

// 利用reducer将store和action串联起来

function reducerFilem(state = initialState, action){

switch(action.type){

case FILEMS:

return {

filem:action.filems

};

default:

return state;

}

}

export default reducerFilem

//store.js

import { createStore,applyMiddleware } from 'redux'

import reducers from './reducer'

import thunk from 'redux-thunk'

// 利用store来保存状态(state)

const store = createStore(reducers , applyMiddleware(thunk))

export default store

//actionCreators.js

import axios from 'axios'

import { Filems } from './action'

export const getFilems=()=>{

return (dispatch)=>{

axios({

url: 'https://m.maizuo.com/gateway?cityId=310100&ticketFlag=1&k=3203261',

method: 'get',

headers: {

'X-Client-Info': '{"a":"3000","ch":"1002","v":"5.2.1","e":"16553434931479453024714753","bc":"310100"}',

'X-Host': 'mall.film-ticket.cinema.list'

}

}).then(

res => {

if (res.status === 200) {

dispatch(Filems(res.data.data.cinemas));

}

}

).catch(

err => console.error(err)

)

}

}
 

//Rudexpage.js

import store from '../redux/store'

import React,{useEffect,useState} from 'react'

import {getFilems} from '../redux/actionCreators'

function Rudexpage() {

const [filem,setFilem] =useState(store.getState().reducerFilem.filem)

useEffect(()=>{

store.subscribe(()=>{

setFilem(store.getState().reducerFilem.filem)

})

const action = getFilems()

store.dispatch(action);

},[])

return (

<div>

<ul>

{

filem.map(item=>

<li key={item.cinemaId}>{item.name}</li>

)

}

</ul>

</div>

);

}

export default Rudexpage;


http://www.ppmy.cn/news/623.html

相关文章

java毕业设计的大学宿舍管理系统mybatis+源码+调试部署+系统+数据库+lw

java毕业设计的大学宿舍管理系统mybatis源码调试部署系统数据库lw java毕业设计的大学宿舍管理系统mybatis源码调试部署系统数据库lw本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前端技术&#…

基于yolov5n的轻量级MSTAR遥感影像目标检测系统设计开发实战

做过很多目标检测类的项目了&#xff0c;最近看到一个很早之前用过的数据集MSTAR&#xff0c;之前老师给的任务是基于这个数据集来搭建图像识别模型&#xff0c;殊不知他也是可以用来做目标检测的&#xff0c;今天正好有点时间就想着基于这个数据集来做一下目标检测实践。 首先…

keychron矮轴无线机械键盘简直就是yyds

一、背景 日常生活中&#xff0c;我们都离不开键盘&#xff0c;游戏党打游戏要键盘&#xff0c; 工作人员无论使用台式电脑还是笔记本操作都离不开键盘&#xff0c;尤其程序员这一族&#xff0c;键盘简直就是敲代码的灵魂。随着经济和科技飞速发展&#xff0c;我们早已不在像从…

【读论文】GANMcC

GANMcC简单介绍网络结构生成器辨别器损失函数生成器损失函数辨别器tips总结参考论文&#xff1a;https://ieeexplore.ieee.org/document/9274337 如有侵权请联系博主 这几天又读了一篇关于GAN实现红外融合的论文&#xff0c;不出意外&#xff0c;还是FusionGAN作者团队的人写…

下班路上捡了一部手机,我用8年开发知识主动找到了失主

☆ 我们学习开发知识&#xff0c;其实并不是只解决当前用户的需求&#xff0c;实现UI原型的还原&#xff0c;不应该只把自己嵌套在当前的浏览器或者某个docker的环境下。 因为不管你在tomcat或者数据库里折腾得再欢&#xff0c;可能到了生活中发现自己失去了超能力。 ☆ 记得有…

你是否还记得有一款游戏叫做“魔塔”?

目录 前言 正文 游戏介绍&#xff1a; 游戏开发制作流程 1.收集素材 2.创建攻击函数 2.1 定义两个对象&#xff08;主角和怪物&#xff09; 2.2 函数输出为【0】表示打不过&#xff0c;胜利输出受损生命值&#xff0c;设置 cancel 可以撤销本次战斗即回到之前状态 2.…

星起航跨境:跨境卖家可以这样获得好评,稳步提升销量

据调查数据显示&#xff0c;90%以上的消费者购物之前会先查看产品评论&#xff0c;好的评价能促进产品更快地转化&#xff0c;不好的评价还会对产品listing权重产生一定的影响。例如&#xff1a;在产品listing的评价较少的情况下&#xff0c;一个1星差评在listing展示超过3天之…

Go-Windows环境的快速搭建

下载 Downloads - The Go Programming Language 或者直接到指定版本下载可以根据个人喜好&#xff0c;下载zip或者执行版 下载后文件夹 查看版本 必须查看版本&#xff0c;通过go version命令进行查看最新版本1.19.3版本 配置的GoPath 已经自动配置进去 需要重新进入一个新的…