gpt4 book ai didi

javascript - 使用重定向时,我的状态不会更新,所以我从不重定向

转载 作者:行者123 更新时间:2023-12-01 00:42:07 26 4
gpt4 key购买 nike

背景

我有一个带有表单的react/redux项目。我希望它在提交表单后重定向到我网站上的另一个页面。

在研究这个问题时,我尝试了 thisthisthis ,加上 github 上的其他解决方案,但没有一个完全有效。大多数解决方案处理状态更改,有些与路由器一起使用。我不确定我错过了什么。

代码

这是我的表格。

import React from 'react'
import {connect} from 'react-redux'
import {addProgram} from '../../actions/addProgram'
import {Form} from 'semantic-ui-react'
import {Redirect} from 'react-router'

class ProgramInput extends React.Component {
constructor(props){
super(props)
this.state = {
name: '',
network: '',
image: '',
fireRedirect: false
}
this.handleSubmit = this.handleSubmit.bind(this)
}

handleChange = event => {
this.setState({
[event.target.name]: event.target.value
})
}

handleRedirect = event => {
this.setState({
fireRedirect: true
})
}

handleSubmit = event => {
event.preventDefault()

this.props.addProgram(this.state)


this.setState({
name: '',
network: '',
image: '',
fireRedirect: ''
})
}

render(){
const fireRedirect = this.state.fireRedirect

if (fireRedirect === true) {
return <Redirect to='/programs' /> }

return(
<Form onSubmit={this.handleSubmit}>
<h2>Create a New Show</h2>
<Form.Input
fluid
label='Name'
name='name'
value={this.state.name}
onChange={this.handleChange}
width={6} />
<Form.Input
fluid
name='network'
label='Network'
value={this.state.network}
onChange={this.handleChange}
width={6} />
<Form.Input
fluid
name='image'
label='Image Link'
value={this.state.image}
onChange={this.handleChange}
width={8} />
<Form.Button>Submit</Form.Button>
</Form>
)
}
}

export default connect(null, {addProgram})(ProgramInput)

非常感谢您抽出时间!

最佳答案

当前代码失败的原因是从未调用handleRedirect。没有必要在它自己的方法中包含它,但如果这是您喜欢的,那么只需从 handleChange 调用 handleRedirect() 即可。

关于javascript - 使用重定向时,我的状态不会更新,所以我从不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57650450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com