+-
React Router-OnClick不在Navlink中处理

在底部,在NavLink标记中,onClick不起作用,我只重定向到另一个页面,但它不处理SubmitHandler函数

如果删除NavLink,则submitHandler会处理,但是每当我添加React Router标签时,都不会触发

我删除了大部分代码,因为我的问题不是必需的]]

class XXX extends React.Component {
  constructor() {
    super();
    this.state = {
      username: "",
      password: "",
      users: [],
      errors: []
    };
  }

  submitHandler = event => {
    event.preventDefault();

    let check = true;

    if (this.state.username == "") {
      this.showValidationErr("username", "Username cannot be empty !");
      check = false;
    }
    if (this.state.password == "") {
      this.showValidationErr("password", "Password cannot be empty !");
      check = false;
    }
    if (this.state.users.indexOf(this.state.username) != -1) {
      this.showValidationErr("username", "Username already exists !");
      check = false;
    }
    if (check) {
      axios
        .post("https://localhost:44314/api/Users", this.state)
        .then(response => {
          console.log(response);
        })
        .catch(error => {
          console.log(error);
        });
    }
  };

  render() {
    return (
      <div className="App">
        <form onSubmit={this.submitHandler}>
          <button type="Submit">
            <NavLink to="/newsfeed" onClick={() => this.submitHandler}>
              Create Account
            </NavLink>
          </button>
        </form>
      </div>
    );
  }
}

在底部,在NavLink标记中,onClick不起作用,我仅被重定向到另一个页面,但是它不处理commitHandler函数。如果我删除了NavLink,则SubmitHandler ...

0
投票
您在这里不需要NavLink,只需使用按钮,然后单击将调用表单上使用的函数。