ts react 无法使用 ref 获取input的value

使用ts 加 react 无法用ref 获取input的value值

import React, {Component} from "react"  
  
export default class Leon extends Component {  
    name: string;  
    log \= () => {  
        console.log("this.name:"+this.name)  
    }  
  
    render(): React.ReactElement<any, string | React.JSXElementConstructor<any>> | string | number | {} | React.ReactNodeArray | React.ReactPortal | boolean | null | undefined {  
        return (  
            <div\>  
                <input ref={(input: HTMLInputElement) => this.name = input.value}  type="text"/>  
                <button onClick={this.log}\>cccc</button>  
            </div>  
        )  
    }  
}

获取的input.value 值为 null
image.png

阅读 4.8k
1 个回答

你需要先初始化一个 ref, 而不是直接赋值

    
class Leon extends React.Component {  
   + name!: string;
   + refs: any = React.createRef()

    log = () => {  
    +    this.name = this.refs.value
        console.log("this.name:" + this.name)  
    }  
  
    render(): React.ReactElement<any, string | React.JSXElementConstructor<any>> | string | number | {} | React.ReactNodeArray | React.ReactPortal | boolean | null | undefined {  
        return (  
            <div>  
    +            <input ref={(input: HTMLInputElement) => this.refs = input}  type="text" />  
                <button onClick={this.log}>cccc</button>  
            </div>  
        )  
    }  
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题