Estoy tratando de usar react-native-torch con react native. Tomé este código y lo puse en mi proyecto. También instalé react-native-torch con npm install --save react-native-torch
. Mi App.js se ve así (perdón por usar un fragmento de código, no pude lograr un formato adecuado con this formating
):
import React, { Component } from 'react'; import { AppRegistry, Button, NativeModules, StyleSheet, Text, View } from 'react-native'; import Torch from 'react-native-torch'; export default class TorchDemo extends Component { constructor(props) { super(props); this.state = { isTorchOn: false, }; } _handlePress() { const { isTorchOn } = this.state; Torch.switchState(!isTorchOn); this.setState({ isTorchOn: !isTorchOn }); } render() { return ( <View style={styles.container}> <Text style={styles.welcome}> RCTTorch Demo </Text> <Button onPress={this._handlePress.bind(this)} title="Toggle Torch" /> </View> ); } } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, }, }); AppRegistry.registerComponent('TorchDemo', () => TorchDemo);
Todo funciona como debería, pero cuando toco el botón de la linterna, recibo esta advertencia y la linterna no se enciende:
Probé muchas formas de sus códigos de demostración, pero el problema siempre fue con Torch.switchState
. ¿Alguien sabe cómo solucionar este problema?
Muchas gracias por cualquier ayuda.
Ene
¿Intentó compilar la aplicación nuevamente ya que este módulo requiere vinculación? De lo contrario, debe ejecutar la aplicación React Native nuevamente.
Para ejecutar Android: npx react-native run-android
Para ejecutar ios: npx react-native run-ios
Parece que está utilizando un flujo de trabajo administrado, no funcionará a través de Expo Go. Debe usar un cliente de desarrollo para que funcione el código nativo. Créalo con EAS.
expo install expo-dev-client
eas build:configure
eas build -p android --profile development
expo start --dev-client
en lugar de 'expo start'Documentos: https://docs.expo.dev/development/getting-started/