首页 > 解决方案 > 在本机反应中使用redux将输入从大写转换为小写

问题描述

我正在尝试使用输入删除所有空格。实际上,输入与 redux 结合在一起,只要有 onChangeText ,它就会成为动作的道具,然后从道具中获取价值。

我需要在输入完成后或输入时删除所有空格。但无法做到这一点。

我的表格代码:

<FormInput
    underlineColorAndroid='#2980b9'
    placeholder='Having Promo Code ? Enter here !'
    onChangeText={value => this.props.onCouponCodeChanged(value)}
    value={this.props.enteredCode}
/>

我的 Redux 操作:

export const onCouponCodeChanged = (value) => {
    return {
        type: COUPON_CHANGED,
        payload: value
    }
};

我的减速机:

 const INITIAL_STATE = { enteredCoupon: '' }

 export default (state=INITIAL_STATE, action) => {
     switch (action.type) {
         case COUPON_CHANGED:
             return {
                 ...state,
                 enteredCoupon: action.payload,
                 errorForCoupon: ''
             };
             ...
 }

如何删除所有空格?当我在行动中这样做时,它会很活跃。我只想删除而不向用户显示

标签: javascriptreact-nativeredux

解决方案


当您将其设置为 state 时,在您的减速器中执行此操作

 const INITIAL_STATE = { enteredCoupon: '' }

 export default (state=INITIAL_STATE, action) => {
   switch (action.type) {
    case COUPON_CHANGED:
        return {...state, enteredCoupon: action.payload.replace(/ /g,''), errorForCoupon: 
    ''};
.....
 }

只要确保你直接从状态绑定输入的值

编辑

如果您想以这种方式保留它,那么也许您希望仅在实际使用该优惠券时才删除空格,例如,如果您想在 json 的后端构建中应用优惠券,那么只需使用相同的逻辑对其进行转换,例如例子

const transformedCoupon = coupon.replace(/ /g,'');
applyCoupon(transformedCoupon)

推荐阅读