Ich benutze den Basiscode von here, um die Kamera zu arbeiten. Der einzige Unterschied ist, dass ich keine Standalone-Kamera-App gemacht habe, sondern den Code in andere App implementiere (Öffnen der Kamera über die Taste in der App)Expo reagieren native Kamera hat nicht funktioniert
Ich befolge den Code genau, aber die Kamera würde das Bild nicht aufnehmen und speichern es. Es gibt sogar eine Warnung sagen
[Unhandled Promise rejection: Error: TypeError: expected dynamic type `string', but had type `object']
ich den Code erneut prüfen, und ich bin ziemlich sicher, dass es von diesem Teil kam
takePicture = async function() {
if (this.camera) {
this.camera.takePictureAsync().then(data => {
FileSystem.moveAsync({
from: data,
to: `${FileSystem.documentDirectory}photos/Photo_${this.state.photoId}.jpg`,
}).then(() => {
this.setState({
photoId: this.state.photoId + 1,
});
Vibration.vibrate();
});
});
}
};
Der Druckknopf hat das Bild nicht nehmen.
Ich habe ein Konsolenprotokoll und gefunden takePictureAsync()
if (this.camera) {
this.camera.takePictureAsync().then(data => console.log(data));
}
für den folgend und das ist das Ergebnis
Object {
"height": 1920,
"uri":"file:///data/user/0/host.exp.exponent/cache/ExperienceData/%2540lily%252Fmotion/Camera/e501458d-f081-47b5-b7ac-6742f8e8d61e.jpg",
"width": 1080,
}
Ist das, warum heißt es in der Warnung expected dynamic type 'string', but had type 'object']
? und möglicher Grund, warum die App das Bild nicht aufgenommen hat?
Wenn ja, wie soll ich das beheben?
Vielen Dank für Ihre Hilfe.
Mein package.json
"expo": "^22.0.4",
"native-base": "^2.3.3",
"react": "16.0.0-beta.5",
"react-native": "https://github.com/expo/react-native/archive/sdk-22.0.1.tar.gz"
können Sie den Code der Funktion Post, wo Sie das Protokoll gedruckt? –
@Ishita Sinha bitte beziehen Sie sich auf meine Frage. Ich habe es bearbeitet, um den Code zu zeigen, den ich verwendete, um das Protokoll zu drucken – Ling
Verwenden Sie 'from: data.uri' anstelle von' from: data'. Das ist alles. –