javascript - 如何让我的可迭代值与 React 和 Redux 保持循环?

标签 javascript reactjs redux

每次我点击按钮时,参数始终是 {i} 的最后一个值(在本例中为 0),我需要将普通值传递给 Redux 操作。

当我在我的 DIV 中打印时工作。

class MYCLASS extends React.Component {
    constructor(props){
        super(props);
    }

    render() {
        var level = []; 
        for (var i = 10; i > 0; i--) {
            level.push(
                <div>
                    <div>{i}</div>
                    <button className='up' onClick={()=>this.props.callUp({i})}>HEREEE!!</button>
                    <button className='down' onClick={()=>this.props.callDown({i})}>HEREEE!!</button>
                </div>
            );
        }
        return level
    }

}
const mapDispatchToProps = (dispatch) => ({
    callUp: (i) => dispatch(callUp(i)),
    callDown: (i) => dispatch(callDown(i)),
})

最佳答案

当您遍历循环时,您可以将 i 的值存储到一个变量中。每次迭代循环时,都会创建该变量的一个新实例。然后您可以将该变量传递给 onClick 处理程序。它的当前值将被使用并存储在数组的内存中。

如果你不这样做,它只会使用 i 的最终值

引用codesandbox:https://codesandbox.io/s/fancy-waterfall-kw0kb

import React from "react";

class Test extends React.Component {
  renderButtons = () => {
    var level = [];
    for (var i = 10; i > 0; i--) {
      const currentLevel = i;
      level.push(
        <div>
          <div>{currentLevel}</div>
          <button className="up" onClick={() => this.props.callUp(currentLevel) }>
            HEREEE!!
          </button>
          <button className="down" onClick={() => this.props.callDown(currentLevel) }>
            HEREEE!!
          </button>
        </div>
      );
    }
    return level;
  };

  render() {
    return <div>{this.renderButtons()}</div>;
  }
}

export default Test;

const mapDispatchToProps = (dispatch) => ({
  callUp: (i) => dispatch(callUp(i)),
  callDown: (i) => dispatch(callDown(i)),
})

关于javascript - 如何让我的可迭代值与 React 和 Redux 保持循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56317961/

相关文章:

javascript - jQuery Mobile + Flexslider2

reactjs - 如何在reactjs中执行相当于jQuery的slideToggle()?

javascript - 如何在 React/Redux 计算器中编写不重复某些值的条件语句?

angularjs - 是否可以使用 $rootScope 作为存储在 Angular 1 中实现类似 Redux 的架构?

javascript - 通过键从对象中删除项目

javascript - 从 jQuery 日期选择器获取查询值(格式问题)

javascript - 为什么 Chrome 会保留上一页的 scrollTop

javascript - 基于窗口宽度 jquery 执行函数的替代方法是什么?

javascript - React Big Calendar - 是否可以单击某一天并检索该天的事件列表?

javascript - 如何在 redux 中强制执行数据约束