在头部反应组件类中定义了函数Search
Search: function()
{
var author=$('#author').val();
var bookname=$('#title').val();
var isbn=$('#isbn').val();
var keywords=$('#keywords').val();
var publisher=$('#publisher').val();
var url=VDOMAIN+"/aodrbooks.php?action=srch&author="+author+"&isbn="+isbn+"&publisher="+publisher+"&name="+bookname+"&price=''";
$.ajax({url:url,
success: function(result){
resp = JSON.parse(result); //this data is an array
if(resp['count']==1){
location.href=VDOMAIN+"odrbooks?pagename=bkd&bid="+resp['results'][0]['bookid']+"&bkname="+resp['results'][0]['name'];
}
else{
location.href=VDOMAIN+"odrbooks?pagename=cat&type=&author="+author+"&bkname="+bookname;
}
}
});
},
这里我如何全局制作 resp 数据,以便我可以在任何组件的任何页面中访问它?
我尝试使用this.state.data=resp
,this.props.data=resp
和this.setState({data:resp})
答案 0 :(得分:0)
为此目的使用状态容器。目前最受欢迎的是https://jsfiddle.net/gnv1x84k/
您可以在您的reducer中调度操作并存储成功的响应,该响应代表您的应用程序状态。
然后将该reducer连接到需要resp数据的组件,并通过props使用它。