当前位置: 首页 > news >正文

东圃做网站常州商城网站制作公司

东圃做网站,常州商城网站制作公司,google推广专员招聘,l辽宁建设工程信息网react-redux React Redux 是 Redux 的官方 React UI 绑定库。它使得你的 React 组件能够从 Redux store 中读取到数据&#xff0c;并且你可以通过dispatch actions去更新 store 中的 state 安装 npm install --save react-reduxProvider React Redux 包含一个 <Provider…

react-redux

React Redux 是 Redux 的官方 React UI 绑定库。它使得你的 React 组件能够从 Redux store 中读取到数据,并且你可以通过dispatch actions去更新 store 中的 state

安装

npm install --save react-redux

Provider

React Redux 包含一个 <Provider /> 组件,这使得 Redux store 能够在应用的其他地方使用

改造 index.js 页面,引入Provider

import { Provider } from 'react-redux'
import store from './store'

通过 Provider 组件将 store 放在了全局的组件可以够得到的地方

<Provider store={store} ><TotoList /></Provider>

connect

  1. connect 方法会帮助我们订阅 store ,当 store 中的状态发生更改的时候,会帮助我们重新渲染组件
  2. connect 方法会让我们获取 store 中的状态,将状态通过组件的 props 属性映射给组件
  3. connect 方法可以让我们获取 dispatch 方法

引入connect

import { connect } from 'react-redux'

connect 有两个值,一个是 mapStateToProps ,用于将 state 的数据通过 props 属性映射给组件

const mapStateToProps = state => ({list: state.list
})

一个是 mapDispatchToProps ,让我们获取 dispatch 方法,可以将方法映射组件

const mapDispatchToProps = dispatch => ({handleChangeList(list) {dispatch({type: 'changeList',value: list})}
})

最后指定要映射的组件

connect(mapStateToProps, mapDispatchToProps)(TotoList);

这样我们就能在组件 TotoList 使用属性和方法了

完整代码

import React, { useRef, useState, startTransition } from 'react';
import { connect } from 'react-redux'const TotoList = ({ list, handleChangeList }) => {const inputRef = useRef()const [value, setValue] = useState('')const items = list.map((item, index) => {return (<div key={index}><p>{item}<span onClick={() => handledel(index)}> 删除</span></p></div>)})const handleChange = () => {startTransition(() => {setValue(inputRef.current.value)})}const handleAdd = () => {let newList = [...list]newList.push(inputRef.current.value)handleChangeList(newList)setValue('')}const handledel = (key) => {const newList = [...list]newList.splice(key, 1)handleChangeList(newList)}return (<div><div><input ref={inputRef} value={value} onChange={handleChange} /><button onClick={handleAdd}>新增</button></div>{items}</div>)
}const mapDispatchToProps = dispatch => ({handleChangeList(list) {dispatch({type: 'changeList',value: list})}
})const mapStateToProps = state => ({list: state.list
})export default connect(mapStateToProps, mapDispatchToProps)(TotoList);

http://www.yayakq.cn/news/894361/

相关文章:

  • 北京网站建站推广2003系统做网站
  • 网站布局设计怎么写个人网站经营 合法么
  • 上传网站到二级域名百度seo点击排名优化
  • 医院网站设计模板苏州网站设计选哪家
  • 江苏网站建设公司h5编辑软件
  • 广东微信网站建设哪家专业浙江建设工程信息网高工评选
  • 学校响应式网站模板网页制作怎么下载
  • 电影网站制作教程销售管理系统实验报告
  • 网站维护中页面模板什么是网络营销促销
  • 无锡市梁溪区建设局网站江西省赣州市教育局
  • 网站用户后台是怎么做的网站建设和设计
  • shopify与wordpress网站关键词优化方案
  • 网站如何进行优化设计衡阳北京网站建设
  • 给自己女朋友做的网站阿里巴巴运营工资大概多少
  • 网站做搜索关键字好吗电商境外如何做推广
  • 前端一般怎样做网站做冠县梨园网站怎么做
  • 网页和网站有什么分别做网站后台要学
  • PHP网站建设项目经验怎么做网页弹窗广告
  • 三门峡市建设局网站套别人的网站模板吗
  • 企业网站视觉设计注册一个公司最少要多少钱
  • 如何能进深圳好的设计公司网站seo站点
  • wordpress小说站怎么用域名建网站
  • 垂直行业门户网站建设方案企业营销策划论文
  • 网站微信分享链接怎么做的wordpress聚合平台模板
  • 镇江网站优化公司移动端网站的重要性
  • 建设个人网站的好处企业网站哪家做得比较好
  • 无锡设计网站科技有限公司官网
  • 现在哪个网站可以做外贸建筑工程公司取名
  • 外贸平台哪个网站好做襄阳谷城网站建设
  • 垂直网站如何建立一个外贸网站