如何为刷新组件进行 React 重置
how to do React reset for refresh component
我想重置以刷新我的输入状态。
我在网上测试了 13 这个:this.messageForm.reset()
但我得到的错误不是一个函数
import React, {Component} from 'react'
import {Form, Button} from 'reactstrap'
export default class Formulaire extends Component {
createMessage = event => {
event.preventDefault()
console.log(this.message.value)
const message = this.message.value
this.props.addMessage(message)
//reset
this.messageForm.reset()
}
render() {
return (
<div>
<Form
className='form'
onSubmit={event =>this.createMessage(event)}
ref={input => this.messageForm = input}
>
<textarea
required
maxLength='140'
ref={input => this.message = input}
>
</textarea>
<Button type="submit"> Envoyer! </Button>
</Form>
</div>
)
}
}
问题是您的 <Form>
不是 HTML 表单元素,而是 reactstrap Form component,因此它没有 .reset()
方法。
Reactstrap 允许设置 innerRef
属性来访问实际的 DOM 元素:
<Form
className='form'
onSubmit={event =>this.createMessage(event)}
innerRef={input => this.messageForm = input}
>
我想重置以刷新我的输入状态。
我在网上测试了 13 这个:this.messageForm.reset()
但我得到的错误不是一个函数
import React, {Component} from 'react'
import {Form, Button} from 'reactstrap'
export default class Formulaire extends Component {
createMessage = event => {
event.preventDefault()
console.log(this.message.value)
const message = this.message.value
this.props.addMessage(message)
//reset
this.messageForm.reset()
}
render() {
return (
<div>
<Form
className='form'
onSubmit={event =>this.createMessage(event)}
ref={input => this.messageForm = input}
>
<textarea
required
maxLength='140'
ref={input => this.message = input}
>
</textarea>
<Button type="submit"> Envoyer! </Button>
</Form>
</div>
)
}
}
问题是您的 <Form>
不是 HTML 表单元素,而是 reactstrap Form component,因此它没有 .reset()
方法。
Reactstrap 允许设置 innerRef
属性来访问实际的 DOM 元素:
<Form
className='form'
onSubmit={event =>this.createMessage(event)}
innerRef={input => this.messageForm = input}
>