首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Redux中如何在还原剂中编写函数

在Redux中如何在还原剂中编写函数
EN

Stack Overflow用户
提问于 2020-04-10 09:57:52
回答 2查看 256关注 0票数 0

我正在从事一个反应项目,因为我必须执行增量操作,并且我正在写作。

这是商店里的逻辑,但我现在不知道如何阻止它在6点之后的增长。

因此,请有人帮助我如何写逻辑,以停止增长后6,它的初始值。

是1.当我单击加号图标时,它必须增加,但它必须停止递增

在第6位之后。在这个项目中,我使用的是。

我是Buttontypes.js

代码语言:javascript
复制
export const additionVariable = 'ADDITION'

我是Buttonactions.js

代码语言:javascript
复制
import { additionVariable }  from './Buttontypes'; 

export const addition = () => {
    return {
        type: additionVariable
    }
}

我是Buttonreducer.js

代码语言:javascript
复制
import { additionVariable } from './Buttontypes';

const initialState = {
    value: 1
}

const additionReducer = (state = initialState, action) => {
    switch(action.type) {
        case additionVariable: return {
            ...state,
            value: state.value + 1
        }
        default: return state
    }
} 

export default additionReducer

我是store.js

代码语言:javascript
复制
import { createStore } from 'redux';
import mainReducer from './Button/Buttonreducer';

const store = createStore(mainReducer);

export default store

我是App.js

代码语言:javascript
复制
import React from 'react';
import './App.css';

import { connect } from 'react-redux';

import { addition } from './Redux/Button/Buttonactions';

function App(props) {
  return (
    <div className="container">
      <div className='row'>
        <div className='adultbox pr-2'>
          <div className='onebox'>
            <span className='adultminus'>-</span>
          </div>
          <div className='twobox'>
            <span className='adultvalue'>{props.value}</span>
          </div>
          <div className='threebox'>
            <span onClick={props.Fun} className='adultplus'>+</span>
          </div>
        </div>
      </div>
    </div>
  );
}

const mapStateToProps = state => {
  return {
    value: state.value
  }
}

const mapDispatchToProps = dispatch => {
  return {
    Fun: () => dispatch(addition())
  }
}


export default connect(mapStateToProps,mapDispatchToProps)(App)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-10 10:08:28

为你的减速机试试这个:

代码语言:javascript
复制
import { additionVariable } from './Buttontypes';

const initialState = {
    value: 1
}

const additionReducer = (state = initialState, action) => {
    switch(action.type) {
        case additionVariable: return {
            ...state,
            value: state.value <= 6 ? state.value + 1 : state.value
        }
        default: return state
    }
} 

export default additionReducer

票数 0
EN

Stack Overflow用户

发布于 2020-04-10 10:53:27

除了已经建议的还原器之外,我还建议您在mapDispatchToProps中添加一个检查,如果值等于6,则(可选)禁用+

代码语言:javascript
复制
const mapDispatchToProps = dispatch => {
  return {
    Fun: (value) => {
        if (value < 6 { 
            dispatch(addition())
        }
    }
  }
}

然后,在App.js中:

代码语言:javascript
复制
<div className='threebox'>
    <span onClick={() => props.Fun(props.value)} className='adultplus'>+</span>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61137889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档