单击执行功能会出现错误

时间:2019-04-23 20:49:54

标签: javascript reactjs

当我单击按钮时,我希望我的代码执行if函数,但是无论我尝试执行什么,它什么都不做或对我抛出错误。 有人知道这里可能有什么问题吗?

import React from 'react';
export default class MojaKlasa extends React.Component {
  state = {showPass: 0};

  render() {
    function MojaFunkcja() {
      if (this.state.showPass === 0) {
        this.setState([showPass: 1])
      } else {
        this.setState([showPass: 0])
      }
    };
    return (
      <button className="przycisk" onClick={() => MojaFunkcja()}></button>
      <p>{this.state.showPass}</p>
    );
  };
}

4 个答案:

答案 0 :(得分:2)

您可以进行以下操作:

export default class App extends React.Component {
  state = { showPass: 0 };

  MojaFunkcja = () => {
    this.setState({ showPass: (this.state.showPass === 1) ? 0 : 1 });
  };

  render() {
    return (
      <div>
        <button className="przycisk" onClick={this.MojaFunkcja} />
        <p>{this.state.showPass}</p>
      </div>
    );
  }
}

答案 1 :(得分:1)

代码中有很多语法错误和问题...

从'react'导入React;

export default class App extends React.Component {
  state = { showPass: 0 };

  MojaFunkcja = () => {
    this.setState({ showPass: this.state.showPass + 1 });
  };

  render() {
    return (
      <div>
        <button className="przycisk" onClick={this.MojaFunkcja} />
        <p>{this.state.showPass}</p>
      </div>
    );
  }
}

答案 2 :(得分:1)

我建议将showPass从int更改为boolean,这样您的生活会更轻松

import React from 'react';
export default class MojaKlasa extends React.Component {
  state = {
    showPass: false
  };
  render() {
    function MojaFunkcja() {
     this.setState({ showPass: !this.state.showPass })
    };
    return (
        <>
      <button className="przycisk" onClick={MojaFunkcja}></button>
      <p> {this.state.showPass}</p>
        </>
    );
  };
}

答案 3 :(得分:0)

this.setState([showPass: 0])是无效的JavaScript语法。您必须使用{}而不是[]来创建对象文字:

this.setState({showPass: 0})

与其他setState通话相同。

您也不能像return (<button></button> <a />);这样两个元素。您必须返回元素的 array 或单个元素:

return [ // <- array literal
   <button />
   <a />
];

// or

return (
  <span> // <- parent node
    <button />
    <a />
  </span>
);