Ich benutze unten lib um einen Callback (onSuccess, onError) für jede API-Anfrage zu implementieren. Aber ich habe ein Problem beim Update-Zustand, wenn das Ereignis ausgelöst wird. Ich habe versucht, alle Sachen zu entfernen, behalte nur die Basislogik. Ich weiß nicht, warum es falsch ist. Lib: https://www.npmjs.com/package/react-native-simple-eventsReact-Native Fehler this.setState ist keine Funktion
Unten ist mein Code
ApiRequest.js
import Events from 'react-native-simple-events';
export function login(email, password) {
Events.trigger('LoginSuccess', 'response');
}
Login.js
import React, { Component, } from 'react'
import {
View,
Text,
} from 'react-native'
import Events from 'react-native-simple-events';
import * as request from '../../network/ApiRequest'
class LoginScreen extends Component {
static propTypes = {}
static defaultProps = {}
constructor(props) {
super(props)
this.state = {
status: "new"
}
}
componentDidMount() {
Events.on('LoginSuccess', 'myID', this.onLoginSuccess);
request.login("abc","def")
}
componentWillUnmount() {
Events.rm('LoginSuccess', 'myID');
}
onLoginSuccess(data){
this.setState({ //=>error here
status : "done"
});
}
render() {
return (
<View>
<Text>
{this.state.status}
</Text>
</View>
)
}
}
lassen Sie mich wissen, wenn Sie mehr Informationen benötigen
Haben Sie überprüft, ob "this" in der 'onLoginSuccess' Funktion verfügbar ist? Versuchen Sie, 'this 'innerhalb der' onLoginSuccess' Funktion auszudrucken. Wenn dies nicht möglich ist, müssen Sie 'this 'binden, während Sie' onLoginSuccess' aufrufen. 'Events.on (' LoginSuccess ',' myID ', this.onLoginSuccess.bind (this)); ' – iamsaksham