1

I am getting the following error when trying to run my react-native app with iOS device and I am unsure why, any ideas? Just a heads up the app works fine on android simulator.

ERROR TypeError: null is not an object (evaluating '_$$_REQUIRE(_dependencyMap[0], "react-native").NativeModules.RNGetRandomValues.getRandomBase64')

I am building a Tik Tok clone and I am trying to publish a video I record on my device to my AWS database.

So far I have tried to:

adding import 'react-native-get-random-values';,

running the app in release mode,

My code doesn't work when I try to publish the video I record on my phone to the database. I get the error posted above and a warning a created letting me know the video hasn't been published. Again I am only having this error on the iOS side of the application.

Here is my code for the screen:

import React, {
  useState,
  useRef,
  useEffect
} from 'react';
import {
  View,
  Text,
  TouchableOpacity,
  TextInput,
  Button
} from 'react-native';
import styles from '/Users/Documents/TikTok/src/screens/CreatePost/styles.js';
import {
  Storage,
  API,
  graphqlOperation,
  Auth
} from 'aws-amplify';
import {
  useRoute,
  useNavigation
} from '@react-navigation/native';
import {
  createPost
} from '/Users/Documents/TikTok/src/graphql/mutations.js';
import {
  v4 as uuidv4
} from 'uuid';

const CreatePost = () => {
  const [description, setDescription] = useState();
  const [videoKey, setVideoKey] = useState();
  const route = useRoute();
  const navigation = useNavigation();

  const uploadToStorage = async(imagePath) => {
    try {
      const response = await fetch(imagePath);
      const blob = await response.blob();
      const filename = `${uuidv4()}.mp4`;
      const s3Response = await Storage.put(filename, blob);

      setVideoKey(s3Response.key);
    } catch (e) {
      console.error(e);
    }
  };

  useEffect(() => {
    uploadToStorage(route.params.videoUri);
  }, []);

  const onPublish = async() => {

    if (!videoKey) {
      console.warn("Video is not yet uploaded");
      return;
    }
    try {
      const userInfo = await Auth.currentAuthenticatedUser();

      const newPost = {
        videoUri: videoKey,
        description: description,
        userID: userInfo.attributes.sub,
        songID: '6957a5ce-5f8b-40b0-9f6b-aa68eba19c2b',
      };
      const response = await API.graphql(
        graphqlOperation(createPost, {
          input: newPost
        }),
      );
      navigation.navigate("Home", {
        screen: "Home"
      });
      console.warn('Video Uploaded');
    } catch (e) {
      console.log(e);
    }
  };
  return ( <
    View style = {
      styles.container
    } >
    <
    TextInput value = {
      description
    }
    onChangeText = {
      setDescription
    }
    numberOfLines = {
      5
    }
    placeholder = {
      "Post Description"
    }
    style = {
      styles.textInput
    }
    /> <
    TouchableOpacity onPress = {
      onPublish
    } >
    <
    View style = {
      styles.button
    } >
    <
    Text style = {
      styles.buttonText
    } > Publish < /Text> <
    /View> <
    /TouchableOpacity> <
    /View>
  );
};

export default CreatePost;
Ahmeeya Goldman
  • 391
  • 1
  • 2
  • 10

0 Answers0