子组件怎么调用ajax,ReactJS从父项的onClick方法更新ajax调用子组件

本文探讨了如何解决父组件点击事件触发后,子组件的AJAX请求仅在首次加载时响应的问题。作者提供了通过`componentDidMount`和`componentWillReceiveProps`更新URL并重新发起AJAX的方法,以实现实时数据刷新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我点击列表项时,它会触发一个​​方法,它将获得新的url并将其设置为提供的状态。然后将该状态传递给使用该链接进行ajax调用的子组件。

问题是,ajax调用只在组件挂载时加载一次,并且无论再次点击它多少次都不再发出调用。

如何在每次点击不同的项目时获取子组件加载新的url?

父组件:

getInitialState: function() {

return {

gameUrl: ''

};

},

handleClick: function() {

this.setState({

gameUrl: gameUrl

});

},

render: function() {

var gameList = this.props.data.map(function(game) {

var homeTeamName = game.home_team_name;

var awayTeamName = game.away_team_name;

var gameUrl = game.game_directory+'/anotherFile.json';

console.log(homeTeamName+' vs '+awayTeamName+':'+ gameUrl);

var click = this.handleClick;

return (

{homeTeamName}

);

}, bind);

return (

{gameList}

);

子组件:

componentDidMount: function() {

$.ajax({

url: this.props.url,

dataType: 'json',

cache: false,

success: function(data) {

this.setState({

data: data.data

});

}.bind(this),

error: function(xhr, status, err) {

console.error(this.props.url, status, err.toString());

}.bind(this)

});

},

2016-02-16

Simon

+0

访问它在componentWillReceiveProps方法调用Ajax从子组件是一个代码味道,IMO。 –

+0

@Mathletics我也不相信这是最好的做法,但是,我不知道如何去做。我有一个通过ajax调用生成的列表视图。然后在每个列表中包含指向特定列表数据的另一个链接。有另外一种方法可以提取这些数据吗? –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值