【问题标题】:How to this setState to set a value from function?这个 setState 如何从函数中设置一个值?
【发布时间】:2019-02-28 15:32:43
【问题描述】:

我在设置状态值与从函数返回的值时遇到问题。不知何故,状态只是将自己绑定到函数本身。 我该如何解决这个问题?

这是我的构造函数:

    this.state = {
        text: getText
    }

这里是检索函数

getText= () => {
    $.get('/webapi/gettext, function (data) {
        return data;
    }.bind(this));
};

但如果我在构造函数中有它,这将有效。

constructor{
        $.get('/webapi/gettext, function (data) {
                        this.setState({ text: data });
        }.bind(this));
}

【问题讨论】:

    标签: reactjs typescript


    【解决方案1】:

    你需要使用componentDidMount钩子:

    componentDidMount() {
      $.get('/webapi/gettext, (data) => {
        this.setState({ text: data });
      });
    }
    

    如需进一步帮助,请查看我的another post

    【讨论】:

    • 或者我应该把它放在构造函数中吗?什么是正确的方法?我认为将它放在一个函数中并从构造函数中调用它会更好?
    • $.get('/webapi/GetStartupThings, (data) => { this.setState({ text: data }); });¨ 我实际上得到了 2 个检索数据的 jquery。跨度>
    • 是否可以从组件调用函数来代替mount?因为我将在更多地方使用这个 jquery 函数。
    • 如果您要在更多地方使用相同的功能,那么创建一个新函数并在其中放置逻辑 $.get() 代码并在 componentDidMount(){callYourfunction()} 和任何您想要的地方使用它们。
    • 我现在看到有些情况我正在发送参数事件而没有情况。是否可以使用相同的功能,还是必须使用相同代码的两个功能?
    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 2020-11-15
    • 2014-01-16
    • 2019-09-28
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多