【问题标题】:Why is my setState function not undefined?为什么我的 setState 函数不是未定义的?
【发布时间】:2021-10-26 13:09:12
【问题描述】:

尝试使用 setState 函数,但无论我在哪里使用它,它都会以未定义的形式返回?

const StreamingCaptionViewer = () => {
  const [trans, setTrans] = useState(null);
  const [sentidata, setSentidata] = useState();
  const [entidata, setEntidata] = useState();
  const socket = useSocket('transcript', (data) => {
    console.log(`data recieved: ${JSON.stringify(data)}`);
    setTrans(data);
  });

  this.setSentidata = this.setSentidata.bind(this);  // Here is the error (undefined)

  const ErrorMessage = {
    color: 'red',
    fontSize: '13px',
    visibility: 'hidden',
  };

【问题讨论】:

  • lambda 表达式有一个词法 this。不要在功能组件中使用this。将内部属性声明为变量。例如:const innerProp ='foo'hackernoon.com/…

标签: reactjs


【解决方案1】:

您没有使用类组件,因此不需要this。你可以直接setSentidata(whatever)

【讨论】:

    【解决方案2】:

    如果是函数式组件,你可以直接在函数内部访问钩子。

    你不需要绑定钩子,即你不需要写:this.setSentidata = this.setSentidata.bind(this);

    你可以直接使用setSentidata(what you want to set sentidata to)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多