Мы пытаемся преобразовать встроенную функцию реагирования в класс, чтобы мы могли включить управление состоянием, которое будет работать с базой данных Firebase в реальном времени. Мы только что поняли, что вы не можете использовать Крюк в классе, поэтому будем благодарны за некоторые рекомендации относительно альтернативы, которая лучше всего соответствует ситуации. Приложение представляет собой простую камеру, которая позволяет записывать и публиковать видео.
Вот фрагмент исходного кода (работ) в функции. константный тип объявлен и использует ловушку useEffect. Нам нужна альтернатива, которая работает в классе.
export function App({ navigation }) {
const [hasPermission, setHasPermission] = useState(null);
const [cameraRef, setCameraRef] = useState(null)
const [recording, setRecording] = useState(false)
//type uses hooks declared HERE
const [type, setType] = useState(Camera.Constants.Type.back); useEffect(() => {
(async () => {
const { status } = await Camera.requestPermissionsAsync();
setHasPermission(status === 'granted');
})();
Вот над чем мы работаем:
export class App extends Component {
state = {
hasPermission: null,
cameraRef: null,
recording: false,
type: Camera.Constants.Type.back //can not find variable type HERE
};
componentDidMount() {
async () => {
status = await Camera.requestPermissionsAsync();
setHasPermission(status === 'granted');
}, []; if (hasPermission === null) {
return <View />;
}
if (hasPermission === false) {
return <Text>No access to camera</Text>;
}
}
Любая помощь, которую вы оцените, спасибо.