javascript - react.js 怎么通过一个action的方法,改变多个input的value且value的值是不同的

查看:94
本文介绍了javascript - react.js 怎么通过一个action的方法,改变多个input的value且value的值是不同的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

场景:有5个input,每个input的value都是不同的,怎么通过一个action的方法来控制这5个不同的value.

在action里,我知道的是,一个数据类型,对应一个type.那么这5个value,应该有5个type,是吧?但是为了方便以后更改,只需要一个方法,要怎么实现呢?

下面是我的代码,5个type,5个data:

export const SET_TABONE_UNSELECT_2XKEY = 'SET_TABONE_UNSELECT_2XKEY';
export const SET_TABTWO_UNSELECT_2XKEY = 'SET_TABTWO_UNSELECT_2XKEY';
export const SET_TABTHREE_UNSELECT_2XKEY = 'SET_TABTHREE_UNSELECT_2XKEY';
export const SET_TABFOUR_UNSELECT_2XKEY = 'SET_TABFOUR_UNSELECT_2XKEY';
export const SET_TABFIVE_UNSELECT_2XKEY = 'SET_TABFIVE_UNSELECT_2XKEY';

5个action的方法:

export const SET_UN_SELECT_2XIMG_KEY = 'SET_UN_SELECT_2XIMG_KEY';
export function setUnselect2xImgQiniuKey(qiniuKey,obj){
    return{
        type: SET_UN_SELECT_2XIMG_KEY,
        data: {
            unSelect2XImgKey:qiniuKey,
            unSelect2XImgObj: obj
        }
    }
}

export const SET_TABTWO_UNSELECT_2XKEY = 'SET_TABTWO_UNSELECT_2XKEY';
export function setTabTwoUnSelect2XKey(qiniuKey,obj){
    return{
        type: SET_TABTWO_UNSELECT_2XKEY,
        data: {
            tabTwoUnSelect2XImgKey:qiniuKey,
            tabTwoUnSelect2XImgObj:obj
        }
    }
}

export const SET_TABTHREE_UNSELECT_2XKEY = 'SET_TABTHREE_UNSELECT_2XKEY';
export function setTabThreeUnSelect2XKey(qiniuKey,obj){
    return{
        type: SET_TABTHREE_UNSELECT_2XKEY,
        data: {
            tabThreeUnSelect2XImgKey:qiniuKey,
            tabThreeUnSelect2XImgObj: obj
        }
    }
}


export const SET_TABFOUR_UNSELECT_2XKEY = 'SET_TABFOUR_UNSELECT_2XKEY';
export function setTabFourUnSelect2XKey(qiniuKey,obj){
    return{
        type: SET_TABFOUR_UNSELECT_2XKEY,
        data: {
            tabFourUnSelect2XImgKey:qiniuKey,
            tabFourUnSelect2XImgObj: obj
        }
    }
}

export const SET_TABFIVE_UNSELECT_2XKEY = 'SET_TABFIVE_UNSELECT_2XKEY';
export function setTabFiveUnSelect2XKey(qiniuKey,obj){
    return{
        type: SET_TABFIVE_UNSELECT_2XKEY,
        data: {
            tabFiveUnSelect2XImgKey:qiniuKey,
            tabFiveUnSelect2XImgObj:obj
        }
    }
}

怎么使用一个方法,实现这5个方法的功能?谢谢。

解决方案

为什么要在key上面做文章?你这几个方法,只要相同的key,用type区分即可。如果key不同,很显然相应的处理方法也不同,完全没必要。

export function setKey(type, qiniuKey, obj){
    return{
        type,
        data: {
            imgKey: qiniuKey,
            imgObj: obj
        }
    }
}

如果还是想要这么多个方法名,bind成新函数即可。

这篇关于javascript - react.js 怎么通过一个action的方法,改变多个input的value且value的值是不同的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆