Fe-interview: [react] 如何给非控组件设置默认的值?

Created on 16 Jul 2019  ·  5Comments  ·  Source: haizlin/fe-interview

[react] 如何给非控组件设置默认的值?

react

Most helpful comment

  • 表单元素依赖于状态(state),表单元素需要默认值实时映射到状态的时候,就是受控组件
<input name="username" type="text" value={this.state.username} onChange={this.handleChange} />
  • 不通过state控制表单元素,而是通过ref来控制的表单元素就是非受控组件
<input name="username" type="text" ref={username=>this.username=username}/>

All 5 comments

<input defaultValue="123" />
  • 表单元素依赖于状态(state),表单元素需要默认值实时映射到状态的时候,就是受控组件
<input name="username" type="text" value={this.state.username} onChange={this.handleChange} />
  • 不通过state控制表单元素,而是通过ref来控制的表单元素就是非受控组件
<input name="username" type="text" ref={username=>this.username=username}/>

给组件设置默认值,难道就没人说static defaultProps吗?

可在state设置默认值;

给非受控组件设置defaultValue属性,给定默认值
官方文档

示例代码:

import React from 'react'

export default class UnControlledComp extends React.Component {
  constructor(props) {
    super(props)
    this.inputRef = React.createRef()
  }

  handleClick = () => {
    console.log(this.inputRef.current.value);
  }

  render () {
    return (
      <>
        <input defaultValue="default value" ref={this.inputRef}></input>
        <button onClick={this.handleClick}>点击</button>
      </>
    )
  }
}
Was this page helpful?
0 / 5 - 0 ratings

Related issues

haizhilin2013 picture haizhilin2013  ·  3Comments

haizhilin2013 picture haizhilin2013  ·  3Comments

haizhilin2013 picture haizhilin2013  ·  3Comments

undefinedYu picture undefinedYu  ·  3Comments

haizhilin2013 picture haizhilin2013  ·  3Comments