我希望通过onSave
在ReactJS中发布数据,并在api中使用它来使用某些条件(如publisher_id)从数据库中检索数据。
我想要做的是从一个名为User的特殊类中获取publisher_id,然后通过我的React应用程序将其发布到api文件中。我偶然发现了一个问题,即我只能使用$ .post通过一个表格(通常是一个$.post
函数向服务器发送数据。我完全清楚这是如何工作的,但我的问题是:
有没有办法在渲染过程开始时使用componentWillMount
或其他任何内容发送数据?
我曾尝试使用$.post
,但我偶然发现了另一个问题。我注意到,通常,要使$.get
起作用,必须触发事件。
我应该用什么样的活动来做我想做的事?
代码
对于componentDidMount: function ()
{
this.serverRequest = $.get("get_user_id.php", function (publisher_id)
{
this.setState(
{
publisher_id: JSON.parse(publisher_id)
});
}.bind(this));
}
方法,我使用以下工作正常:
publisher_id
我的api工作需要做的就是在检索数据之后,将read.php
发布到componentDidMount: function ()
{ //previous code
this.serverRequest = $.post("read_all_products.php", {
publisher_id: this.state.publisher_id,
})
}
,文件负责从数据库中仅检索特定数据。
编辑:
我尝试过的是以下内容:
componentWillMount: function () {
this.serverRequest = $.post("read_all_products.php", {
publisher_id: this.props.publisher_id,
});
},
componentDidMount: function () {
this.serverRequest = $.get("read_all_products.php", function (products) {
this.setState({
products: JSON.parse(products)
});
}.bind(this));
}
如前所述,数据的检索完全有效,因为稍后在渲染函数中尝试使用{this.state.publisher_id}显示它时,它将正确显示。 什么不起作用的是数据的发布。我可能不完全清楚我应该怎么做,因为我再次尝试在页面加载时发送它。
EDIT2: 我也尝试将publisher_id作为主要组件的prop传递,因此$ .get方法现在在那里发生。然后我做了以下事情:
onSave: function (e) {
$.post("read_all_products.php", {
publisher_id: this.props.publisher_id,
});
e.preventDefault();
}// used after this in the render method on a form with a button, both
//have onSubmit and onClick set to {this.onSave}
这没有用,我尝试使用onSave函数发送伪表单:
{{1}}
我仍然期待得到别人的帮助。在过去的几天里,我几乎陷入困境。我需要让它工作,或者我需要更改身份验证或继续坚持这个。
问题是:如何在React中使用$ .post,在页面加载时将一个名为publisher_id的道具发送到我的.php api文件,或者说,如果其他任何事情是不可能的话,通过制作一个使用空表单发送数据的按钮,该表单在componentDidMount之前按下一次,可能在componentWillMount中?
答案 0 :(得分:0)
我通过执行以下操作解决了问题:
上述代码的解决方案并不存在。我所做的只是根本没有将publisher_id传递给React。我只是在我的api中打开php会话并使用保存的值是$ _SESSION变量。
这样做之后,一切都按我想要的方式运作。