代码之家  ›  专栏  ›  技术社区  ›  Ben Swindells

我的变量在JS函数JSX中没有递增

  •  0
  • Ben Swindells  · 技术社区  · 7 年前

    在我的JSX函数中有一个小问题,变量I没有递增,只向控制台返回1。

    function newTask() {
        var i = 0;
        i+=1; //or i++
        console.log(i);
    
        if(i == 1) {
            class NewTask extends React.Component {
                render() {
                    return (<div class="new-task">True</div>);
                }
            }
            ReactDOM.render(<NewTask/>, document.getElementById('forms'));
    
        }
        else if(i == 2) {
            class NewTask extends React.Component {
                render() {
                    return (document.body.getElementById('new-task'));
                }
            }
            ReactDOM.render(<NewTask/>, document.getElementById('forms'));
        }
    }
    

    感谢您的建设性反馈:)

    1 回复  |  直到 7 年前
        1
  •  2
  •   code    7 年前

    这是因为您正在初始化变量 i newTask

    所以每次你叫它, 初始化为0,然后递增为1。

    您需要的是一个全局变量,您可以通过移动变量声明来实现这一点 在功能之外。

    var i = 0;
    
    function newTask() {
      i += 1; //or i++
      console.log(i);
    
      if (i == 1) {
        class NewTask extends React.Component {
          render() {
            return <div class="new-task">True</div>;
          }
        }
        ReactDOM.render(<NewTask />, document.getElementById("forms"));
      } else if (i == 2) {
        class NewTask extends React.Component {
          render() {
            return document.body.getElementById("new-task");
          }
        }
        ReactDOM.render(<NewTask />, document.getElementById("forms"));
      }
    }