反应-完成表单提交后重定向

时间:2019-10-31 22:12:02

标签: reactjs

我是An error occurred during JSON parsing: java.lang.RuntimeException java.lang.RuntimeException: An error occurred during JSON parsing Caused by: java.io.UncheckedIOException: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token at [Source: lambdainternal.util.NativeMemoryAsInputStream@ae45eb6; line: 1, column: 1] Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token at [Source: lambdainternal.util.NativeMemoryAsInputStream@ae45eb6; line: 1, column: 1] at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148) 的新手,抱歉,如果这太基础了。

提交表格时,我正在尝试对页面执行React。为此,我使用redirect,因为状态更改会重新呈现该组件。

然后,我将状态更新设置为this.redirect.state中的条件以进行重定向。

但是,一旦我以任何更改形式输入一个字符,我就会被重定向,这是不希望的。

完成表格提交后如何重定向?

这是我的代码:

render()

1 个答案:

答案 0 :(得分:0)

您的重定向取决于您在更改时进行更新的this.state.formSeeds.my_bean

更改您的帖子回调以更新redirect状态:

axios.post(url, data, headers)
  .then((res) => {
    console.log(data);
    this.setState({ redirect: true }); // <---
  })
  .catch((error) => {
    console.log(error); 
  });

并更新渲染方法,以便在正确的状态更改时重定向:

render() {
  if(this.state.redirect) {
    return (<Redirect to='edit-cofee' />);
  } else {
    return (
      <div> ... </div>
    );
  }
}