问题描述
我从我的 API 中获得了产品列表。 我创建了一个屏幕,其中列出了我所有的产品。当我单击这些产品之一时,我想在新屏幕中显示该产品的详细信息。所以我通过 this.props.data 将有问题的产品的 id 发送到子屏幕。 当我举一个这样的例子时:
Object {
"cost": 1.86,"created_at": "2018-05-17T21:27:22Z","custom_fields": Array [],"description": "","family_id": 1,"id": 16,"incl_tax": 1,"is_visible": 1,"name": "AMORA Ketchup - 280 g","photo": Object {
"_1_": Object {
"id": 1,"order": 1,"title_fr": "tomato-ketchup-flacon-souple","url": "/i/p-6-1-6-146_5844_16_1.jpg",},"quantity": "0","reference": "","stock_status": "0","tax_rate_id": 1,"unit": "","updated_at": "2018-05-17T21:27:24Z","weight": 0,
我的 console.log 会如我所愿地返回“16”。
我完全迷失的地方,是如何从这个id中恢复我的子屏幕中所选产品的其他数据...... 例如,在这个屏幕中,我想显示家庭、价格、参考、照片、描述。 问题是我不知道如何获取特定的产品信息。我的API中有很多产品(获取产品的函数称为getProduct) 我制作了这个草稿屏幕,但我迷路了,不知道如何去做。
export default class information extends Component {
constructor(props) {
super(props);
this.state = {
productId: props.data,selectedId: '',setSelectedId: '',listData: '',name: '',stock : true,displayArray: [],reference: '',price: '',family: '',description: '',}
console.log('props',this.props.data)
};
initListData = async () => {
let list = await getProduct(this.props.data);
if (list) {
this.setState({
displayArray: list,reference: list.reference,name: list.name,price: list.price,family: list.family_id,description: list.description,stock: list.stock_status,loadMoreVisible: (list.length >= 15 ? true : false),currentPage: 2
});
}
};
async UNSAFE_componentwillMount() {
this.initListData();
}
render() {
console.log(this.state.name)
// console.log('ça c\'est data = ',this.props.data );
// console.log('ça c\'est les props =',this.props );
// console.log('ça c\'est le state = ',this.state );
return (
<ScrollView contentContainerStyle={{flex: 1}}>
{
// this.state.displayArray.map((item,i) => (
<ListItem bottomDivider>
<Icon name='flight-takeoff' />
<ListItem.Content>
<ListItem.Title style={{color: '#d35400'}}>{this.state.name}</ListItem.Title>
<ListItem.Subtitle style={{ color: '#F78400' }}>
{i18n.t("information.family")}: {this.state.family}
</ListItem.Subtitle>
<ListItem.Subtitle style={{ color: '#F78400' }}>
{i18n.t("information.reference")}: {this.state.reference}
</ListItem.Subtitle>
<ListItem.Subtitle style={{ color: '#F78400' }}>
{i18n.t("information.id")}: {this.state.productId}
</ListItem.Subtitle>
<ListItem.Subtitle style={{ color: '#F78400' }}>
{i18n.t("information.cost")}: {this.state.cost}
</ListItem.Subtitle>
<ListItem.Subtitle style={{ color: '#F78400' }}>
{i18n.t("information.description")}: {this.state.description}
</ListItem.Subtitle>
<ListItem.Subtitle style={{ color: '#F78400' }}>
{i18n.t("information.stock")}: {this.state.stock}
</ListItem.Subtitle>
</ListItem.Content>
</ListItem>
// ))
}
</ScrollView>
);
}
}
我希望我的要求很明确,我的英语也不会太差。
你能指导我并帮助我吗?感谢您的解释。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)