試圖映射從promise中返回的對象,我使用react-router 4和redux,redux-promise。數據已作爲承諾返回,但我似乎無法映射它。如果我沒有記錯,那麼render()將返回renderBanner函數並將其呈現在那裏,但我有點不確定如何映射這些數據,因爲我只想抓住img並將其映射。從Redux映射對象數據
編輯:例如(使用不同的API,但相同的處理)
組件文件
import React, { Component } from 'react';
import { Grid, Image } from 'react-bootstrap';
// import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { fetchAdverts } from '../actions/adverts_action';
class FullWidthBannerAd extends Component {
componentDidMount(props) {
this.props.fetchAdverts();
}
constructor(props) {
super(props)
// this.state = {
// data: []
// };
console.log('Props Contains:', props);
};
renderBanner(props) {
console.log('renderBanner Contains:', props);
return (
<div>
hello
</div>
)
}
render() {
return (
<Grid>
{this.renderBanner()}
</Grid>
);
}
}
function mapStateToProps(state) {
return {
adverts: state.adverts
};
}
export default connect(fetchAdverts)(FullWidthBannerAd);
承諾返回
[,…]
0
:{_id: "57bf06e2ad5f52130098ae1c", sort_order: null, img: "e670cf43-9ed7-45f4-987d-d899af472f4c.jpg",…}
_id:"57bf06e2ad5f52130098ae1c"
img:"e670cf43-9ed7-45f4-987d-d899af472f4c.jpg"
所以你的承諾返回的數據是一個包含對象的數組,每個對象都有你想要得到的圖像? – Gayane
是的,這是正確 –
在你的渲染()你可以檢查是否this.props.data,調用返回renderBanner,如果不返回null,並在renderBanner函數中一切正確,你可以返回 – Gayane