TypeError: instance.render is not a function

旧城等待, 2022-01-28 15:39 564阅读 0赞

1、错误描述

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly95b3VoYWlkb25nLmJsb2cuY3Nkbi5uZXQ_size_16_color_FFFFFF_t_70

2、错误原因

  1. import React, {Component} from 'react';
  2. import {render} from 'react-dom';
  3. import Button from 'react-bootstrap/Button'
  4. class InputRead extends Component {
  5. constructor() {
  6. return { user: '' };
  7. }
  8. inputChange(e) {
  9. this.setState({user:e.target.value});
  10. }
  11. clearAndFocus() {
  12. this.setState({user:''},()=>{
  13. this.refs.thisInput.focus();
  14. })
  15. }
  16. render() {
  17. return (
  18. <div>
  19. <Button onClick={this.clearAndFocus.bind(this)}>
  20. 清空
  21. </Button>
  22. <input ref="thisInput" value={this.state.user} onChange={this.inputChange.bind(this)}/>
  23. </div>
  24. )
  25. }
  26. }
  27. export default InputRead;

构造函数中不能使用return语句,否则以为构造函数中需要添加render()方法

3、解决办法

  1. import React, {Component} from 'react';
  2. import {render} from 'react-dom';
  3. import Button from 'react-bootstrap/Button'
  4. class InputRead extends Component {
  5. constructor(props) {
  6. //return { user: '' };
  7. super(props);
  8. this.state = { user: '' };
  9. }
  10. inputChange(e) {
  11. this.setState({user:e.target.value});
  12. }
  13. clearAndFocus() {
  14. this.setState({user:''},()=>{
  15. this.refs.thisInput.focus();
  16. })
  17. }
  18. render() {
  19. return (
  20. <div>
  21. <Button onClick={this.clearAndFocus.bind(this)}>
  22. 清空
  23. </Button>
  24. <input ref="thisInput" value={this.state.user} onChange={this.inputChange.bind(this)}/>
  25. </div>
  26. )
  27. }
  28. }
  29. export default InputRead;

发表评论

表情:
评论列表 (有 0 条评论,564人围观)

还没有评论,来说两句吧...

相关阅读