栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在独立组件react和redux之间传递数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在独立组件react和redux之间传递数据

好的,这是一个例子。我将假设您已经配置了所有Redux存储,即创建存储,rootReducer等…,因为这是一个单独的帖子。

因此,基本的想法是,当你想更新你的终极版商店状态你 派遣 一个 动作减速机
,并与它一起发送数据的有效载荷。这听起来令人困惑,但从本质上讲,它只是告诉减速器您想要做什么,即“嘿减速器,我想让您进行UPDATE_EMP_NUMBER,这是数据”。

基本上,reducer只是下面的大量switch语句,它只是根据给定的操作返回新的状态部分。

同样,我对您的体系结构,商店等一无所知,因此这都是基于假设的,但是这对您来说可能是什么样子。

减速器

export default function employeeReducer(state = [], action) {    switch (action.type) {        case UPDATE_EMP_NUMBER: {     const Empnumber = action.payload;     return {         ...state,         Empnumber     }; } case ANOTHER_ACTION: {     // etc... }        default: return state;    }}

考虑到以上几点,您可以像这样更新代码。

EmpSearch

export class EmpSearch extends React.Component {        // Not needed anymore as state going to Redux and not local component state        updateEmpNumber(e) {        // No need to set state here as you are now passing this data to Redux store        // this.setState({Empnumber: e.target.value});        // Instead we will dispatch an action and send the empNumber to the reducer        this.props.dispatch({     type: 'UPDATE_EMP_NUMBER',     payload: e.target.value });    }    render() {    return (        <div className="row">        <form> <div className="form-group"> <label htmlFor="Empnumber">Emp Number</label> <input type="text" className="form-control" id="Empnumber" placeholder="Emp Number" value={this.props.Empnumber} onChange={this.updateEmpNumber.bind(this)}/> </div>        </form>        </div>    );    }}function mapStateToProps(state){    return {        Empnumber: state.Empnumber    }}export default connect(mapStateToProps)(EmpSearch);

然后,您的EmpDetail类仅需要连接到商店(或将数据作为道具传递,但更容易将其连接)。

EmpDetail

class EmpDetail extends React.Component {    render() {        const empNumber = this.props.Empnumber;        return ( <div className="container">     Empnumber = {empNumber} </div>        );    }}function mapStateToProps(state){    return {        Empnumber: state.Empnumber    }}export default connect(mapStateToProps)(EmpDetail);

我真的希望这会有所帮助,当您看不到最终结果时,很难解释这一点!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号