【发布时间】:2019-07-29 11:25:36
【问题描述】:
我在将数据传递给我的子组件时遇到问题。
import React, { Component } from 'react'
import { Text, View, ScrollView } from 'react-native'
import axios from 'axios'
import ClaimStatus from '../table/ClaimStatus'
export class ClaimsEW extends Component{
render(){
console.log(this.props.claim_approval_summary)
return(
<ScrollView>
<View style={{elevation:5, backgroundColor:'#fff', margin:15}}>
<ClaimStatus newprops={this.props.claim_approval_summary} />
</View>
</ScrollView>
)
}
}
class ClaimsAMC extends Component{
render(){
return(
<View>
<Text>
class two
</Text>
</View>
)
}
}
export default class ClaimsLevelTwo extends Component {
constructor(props) {
super(props)
this.state = {
id: '',
param_oem: '',
dropdown_arg: '',
claim_approval_regions: [],
claim_approval_summary: [],
}
}
async componentDidMount(){
const param_oem = this.props.navigation.getParam('value');
const auth_id = this.props.navigation.getParam('auth_token');
const dropdown_arg = this.props.navigation.getParam('arg');
await this.setState({
param_oem,
id: auth_id,
dropdown_arg,
fetched: true
});
var headers = {
'Content-Type': 'application/json',
'Access-Control-Allow-Headers': 'x-access-token',
'x-access-token': this.state.id
}
axios.post('http://bi.servassure.net/api/ClaimApprovalSummary', {
oem: this.state.param_oem,
}, {headers:headers})
.then(res => {
let claim_approval_regions = res.data.region;
let claim_approval_summary = res.data.data[0];
this.setState({
claim_approval_regions :claim_approval_regions,
claim_approval_summary : claim_approval_summary
});
console.log(this.state.claim_approval_regions)
}).catch(err => console.log(err));
}
render() {
const state_values = this.state;
console.log(state_values)
return (
(this.state.dropdown_arg === 'ew' ? (Object.keys(state_values).length > 0 ? <ClaimsEW {...state_values} /> : null) : <ClaimsAMC/>)
)
}
}
当我在 ClaimsEW 类中调用 ClaimStatus newprops={this.props.claim_approval_summary} /> 组件时,道具变得未定义。我什至尝试在没有新子组件的情况下打印值,只给出一个但仍然给出相同的结果。
如果我没有在 ClaimsEW 类中传递任何新的 Component 或 View,console.log(this.props.claim_approval_summary) 会在控制台中打印 props 值。在调用ClaimStatus newprops={this.props.claim_approval_summary} /> 时,在以下组件中打印未定义的道具。
我收到的数据是对象形式的,因此我将其转换为数组以在<ClaimStatus/> 组件中进一步映射。
请帮助解决这个问题。
【问题讨论】: