gpt4 book ai didi

reactjs - 将 props 从父组件传递到子组件

转载 作者:行者123 更新时间:2023-12-05 08:53:52 25 4
gpt4 key购买 nike

我有一个父类

import React, { Component } from 'react';
import { View, TouchableOpacity, Text, ListView } from 'react-native';
import Profile from './UserBlock';

export default class ControlPanel extends Component {
constructor(props){
super(props)
console.log(this.props)
this.state = {
email: "email@gg.com",
first_name: "User",
image : '../img/user.png'
}
}

render() {
return(
<View style={{backgroundColor:'rgba(255,255,255,0.93)', flex:1,}}>
<Profile {...this.props} />
</View>)
}
}

和子组件

import React, { Component } from 'react';
import { View, Text, Image } from 'react-native';

export default class UserBlock extends Component {
constructor(props){
super(props)
this.state = {}
}

render() {
return(
<View style={{flexDirection:'row', padding:10}}>
<Image source ={{uri : this.props.state.image}} resizeMode="contain" style={{margin:15, width:60, height:60, borderRadius:30}} />
<View style ={{justifyContent:'center', margin:15}}>
<Text style={{fontWeight:'700', fontSize:25, color:'#444'}}>{this.props.state.first_name}</Text>
<Text style={{fontWeight:'200', color:'#999'}}>{this.props.state.email}</Text>
</View>
</View>)
}
}

但是当我尝试读取父 props 时出现错误 "TypeError: undefined is not an object"
但在我看来我做的一切都是正确的。

最佳答案

您没有将 props 正确传递给子组件。

您正在做的是使用扩展运算符向下传递多个键/值,但如果您的属性为空,则不会传递任何内容。

<Profile {...this.state} />

相同
<Profile
email={this.state.email}
first_name={this.state.first_name}
image={this.state.image}
/>

要将父状态放入您需要做的子组件中:

<Profile {...this.state} />

然后在你的子组件中

console.log(this.props) // would log:
// email: "email@gg.com"
// first_name: "User"
// image : '../img/user.png'

关于reactjs - 将 props 从父组件传递到子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52262087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com