【发布时间】:2021-01-18 18:49:25
【问题描述】:
我正在尝试更新 userProfile 图像但收到该错误
已超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。 React 限制了嵌套更新的数量以防止无限循环。
这是我的代码
class Profile extends Component {
state = {
userImage: require("../assets/cena.jpg"),
userName: "John Cena",
userInfo: "The champ is here",
modal: false,
image: null,
hasCameraPermission: null,
};
async componentDidMount() {
const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);
this.setState({ hasCameraPermission: status === "granted" });
}
pickImage = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: true,
aspect: [4, 3],
});
if (!result.cancelled) {
this.setState({ image: result.uri });
this.props.formikProps.setFieldValue("image", result.uri);
}
};
closeModal = () => {
this.setState({ modal: false });
};
render() {
return (
<SafeAreaView style={styles.screen}>
<View style={styles.container}>
<TouchableOpacity
activeOpacity={0.7}
onPress={this.pickImage}
style={styles.TouchableOpacityStyle}
>
<MaterialCommunityIcons
name="camera"
size={30}
color={colors.white}
/>
</TouchableOpacity>
{!this.state.image && (
<Image style={styles.image} source={this.state.userImage} />
)}
{this.state.image && (
<Image
style={styles.edit}
source={this.setState({ userImage: this.state.image })}
/>
)}
谁能告诉我这是怎么回事?
【问题讨论】:
标签: javascript reactjs react-native