Quantcast
Channel: Active questions tagged react-native+ios - Stack Overflow
Viewing all 16558 articles
Browse latest View live

Integrations of an iOS component in React Native

$
0
0

I am new to the development of React Native, I know iOS. Just want to know about few points:

  1. Can we add iOS (swift or objective C) code in a React Native App?
  2. Can we add React Native Views into the existing iOS app?

I have googled and got the examples which point to that 2nd one is quite possible and Instagram did it in edit profile screen.

But I cannot find examples where it's a React Native app and we introduces swift or Objective-C code in between.

Please if anyone knows of any links or examples available for Case 1, please do let me know about it.

2nd question:

  • When we integrate react native with iOS, it will be through a bridge. Let's say I create an app in Swift, to get react native views in it, we have to go through 2 bridges, one converting Swift to Objective-C and then bridge between Objective-C to React Native. Is that correct? If yes will it be as fast as the native app?

React native FCM iOS push notification not delivered .How to debug

$
0
0

first of all environment is React native, I try to setup push notification in iOS following instruction from rnfirebase package here what step i do

  1. create key

enter image description here

  1. then add to firebase

enter image description here

  1. add Google-service.plist and add setup following from firebase doc

enter image description here

and acivate capabillity enter image description here

  1. then I install pod package

enter image description here

  1. run app got token

enter image description here

  1. use token send on cloud messaging console

notification not delivered I didn't know what wrong because message also send from FCM and what happens on APNS where I get an error just confused

thank for advance

and also try by connecting directly with pusher enter image description here

and also not received again

then try to use Onesignal with same certificate with Firebase is work even on the test message

replace() function works in VS Studio (React native), but fails on iPhone?

$
0
0

I have a function which works perfectly in Javascript on my iPhone simulator on the Mac. When i transfer this via Xcode to an physical iPhone handset, the .replace() function doesn't work. I get the error: TypeError: null is not an object (data.replace) not evaluating

await this.getAsyncStorage(this.state.username)
            .then(data => this.setState({localname: data.replace(/\"/g, "") }) );  

So i get a returned id ("hiuhiu22-sdwdw343-fgrh6576") from AsyncStorage when i supply the this.state.username key. The replace() strips "" off the ends of "hiuhiu22-sdwdw343-fgrh6576" to get just hiuhiu22-sdwdw343-fgrh6576, so that i can use localname in another function, which MUST have them stripped off.

Why isn't it working on the actual iPhone?

Creating iOS Development Profile with wildcard bundle id using Fastlane

$
0
0

I have a React Native app which was generated using the React Native CLI. The generated app shows a bundle id with value org.reactjs.native.example.FoodieRN. Of course this bundle id does not yet exist in my Apple Developer account. In fact, I don't even have permissions to create a bundle id in my account.

However I should be able to create an iOS Development Profile for this app using a wildcard bundle id. How can I do this using Fastlane Match? The following command seems to require a real bundle id:

fastlane match development

If I give it a wildcard bundle id (*), it fails:

Couldn't find bundle identifier '*' for the user <Apple Id>

Is there another way?

EPERM: operation not permitted, chmod @react-native-community iOS

$
0
0

I am using React 16.8.6 and react-native 0.59.6. iOS.

While typing react-native --version or anything prefix with react-native, it is showing the following error.

internal/fs/utils.js:220
    throw err;
    ^

Error: EPERM: operation not permitted, chmod '/usr/local/lib/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/external/xsel'
    at Object.chmodSync (fs.js:1104:3)
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/copyToClipBoard.js:50:15)
    at Module._compile (internal/modules/cjs/loader.js:956:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
    at Module.load (internal/modules/cjs/loader.js:812:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Module.require (internal/modules/cjs/loader.js:849:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/middleware/copyToClipBoardMiddleware.js:8:47)
    at Module._compile (internal/modules/cjs/loader.js:956:30) {
  errno: -1,
  syscall: 'chmod',
  code: 'EPERM',
  path: '/usr/local/lib/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/external/xsel'
}

I cleaned the project. Restarted it.

Deleted npm package and reinstalled it.

Tried npm install -g react-native-cli.

I have react-native-community/cli version 1.12.0 in package.lock.json dependancies.

I don't have any clue about what to do. I am not able to do link any libraries and other stuffs which requires react-native keyword.

Moreover, If I run it with sudo like sudo react-native --version, it is giving like below mentioned.

warn Your project is using deprecated "rnpm" config that will stop working from next release. Please use a "react-native.config.js" file to configure the React Native CLI. Migration guide: https://github.com/react-native-community/cli/blob/master/docs/configuration.md
warn The following packages use deprecated "rnpm" config that will stop working from next release:
  - react-native-google-signin: https://github.com/react-native-community/react-native-google-signin
  - react-native-video: https://github.com/react-native-community/react-native-video#readme
Please notify their maintainers about it. You can find more details at https://github.com/react-native-community/cli/blob/master/docs/configuration.md#migration-guide.
3.0.4

Please suggest some guidance regarding the same.

Thanks.

How can I verify React native expo apple authentication in Php server side? [closed]

$
0
0

Using https://developer.apple.com/documentation/signinwithapplejs this documentation I can verify token in Php server-side which is client gives me using "Embed Sign In with Apple JS"
In react native we use https://github.com/expo/expo/tree/master/packages/expo-apple-authentication this package.
I don't know how can I verify token in Php server-side which is received from this "expo apple authentication."
When I run same code for Sign with apple Js it gives me invalid_client error.
Thanks.

How to combine ios settings from two different react-native modules : react-native-fbsdk, rn-kakao-login

$
0
0

To use react-native-fbsdk in ios, below code is needed in AppDelegate.m

- (BOOL)application:(UIApplication *)application 
            openURL:(NSURL *)url 
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

  BOOL handled =  [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url options:options];
  // Add any custom logic here.
  return handled;
}

And, to use rn-kakao-login in ios, below code is needed in AppDelegate.m

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
                                                   options:(NSDictionary<NSString *,id> *)options {
      if ([KOSession isKakaoAccountLoginCallback:url]) {
          return [KOSession handleOpenURL:url];
      }

      return NO;
  }

If I add above to sections in AppDeletage.m separately, i get following error

Duplicate declaration of method 'application:openURL:options:'

How can I combile above two sections in AppDelegate.m? Please help.

React native Migration to 61: Metro bundler is up on the ios device but does not running

$
0
0

I am trying to understand how does the Metro Bundler works. While migrating to 61 I faced the issue of no bundler started on IOS, after adding start packager script manually as a build phase to Xcode the metro bundler is up for both the emulator and the device, but the green line with percents is running only when installing the app on the emulator when installing on the device it is stack after "Loading dependency graph done" however the app is installed properly on the device and running. Please help me to understand what is the difference between build process on device and emulator. Thank you


Keep getting font family undefined with react native - links vector icons - build tells me to unlink

$
0
0

I've installed galio framework, but I also have react native vector icons installed.

I'm doing react native by itself (not expo). And occassionally, more often I'm getting undefined font family, whether it be Feather or Font Awesome.

I've searched on the internet, and people say do react-native link react-native-vector-icons so I do that, fixes the problem temporarily, and then it happens again. I run the link again, and fixes again, then happens over and over.

Then when I close the simulator, and run npx react-native run-ios, build fails tells me that I need to unlink the react native vector icons...

React-Native: Error: Failed to install CocoaPods dependencies for iOS project, which is required by this template

$
0
0

While executing npx react-native init MyProject I ran into the following error:

✖ Installing CocoaPods dependencies (this may take a few minutes)
error Error: Failed to install CocoaPods dependencies for iOS project, which is required by this template.

Which seems to be related to an earlier error displayed:

checking for arm-apple-darwin-gcc... /Library/Developer/CommandLineTools/usr/bin/cc -arch armv7 -isysroot 
checking whether the C compiler works... no
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: unable to lookup item 'Path' in SDK 'iphoneos'

XCode and its CLI seem to all run fine.

My configuration:

  • MacOS Catalina 10.15.1 (19B88)
  • NPM 6.11.3
  • React-Native 0.61.4
  • XCode 11.2.1 (11B500)

Any leads appreciated.

How do you check/change iOS version in React Native?

$
0
0

I heard that a new version of iOS came out the other day, and wanted to know if my React Native project would be using that version by default when I build it with XCode, and if not, how can I force it to?

My Questions Are:

1) How do you check what version of iOS a React Native app is using?

2) How do you update the version of iOS in a React Native app?

Native UI Component throws Invariant Violation: tried to register two views with the same name FridgeCameraView

$
0
0

Trying to learn React Native custom Native UI Components.

// FridgeCameraViewManager.swift

import UIKit

@objc(FridgeCameraViewManager)
class FridgeCameraViewManager: RCTViewManager {

  override func view() -> UIView! {
    let label = UILabel()
    label.text = "Swift Component"
    label.textAlignment = .center
    return label
  }

  @objc static override func requiresMainQueueSetup() -> Bool {
    return false
  }
}

.

// FridgeCameraViewManager.h

#import <Foundation/Foundation.h>
#import "React/RCTViewManager.h"

@interface RCT_EXTERN_MODULE(FridgeCameraViewManager, RCTViewManager)


@end

.

// FridgeCameraView.js

import {requireNativeComponent} from 'react-native';
const FridgeCameraView = requireNativeComponent('FridgeCameraView', null);
export default FridgeCameraView;

When I try to use FridgeCameraView component somewhere in App.js, it works only If I build & run the project using Xcode. Otherwise, using hot reload when changing something, I get "Invariant Violation: tried to register two views with the same name FridgeCameraView".

enter image description here

how to use AppState in a functional component and hooks? Necessary or am I using useEffect incorrectly?

$
0
0

I want to be able to run a function when a user goes into the app. I thought useEffect would already do something like this, say if I choose to change my phone's Clipboard (copy different texts from another app). But its not rerendering the component.

const [clipped, setClipboard] = useState();
const [appView, setAppView] = useState(AppState.currentState);

const getFromClipboard = useCallback(() => {
  Clipboard.getString().then(content => {
    console.log('content:', content)
    setClipboard(content);
  });

}, [clipped]);

useEffect(() => {
  getFromClipboard();
}, [getFromClipboard, clipped, appView]);

I would assume that every time I copy a new text from a different app, into my clipboard, and then I go back to this app, because the state changed in clipped, it will rerender the useEffect? Unfortunately, its not calling the console log after first initial load of the component.

I stumbled across AppState, and thought I might be able to give this a shot, but not sure how to set this up with useEffect?

react native app works on debug mode, but not works release mode on ios

$
0
0

I Have an app on react native. Debug mode works on ios. But Release mode not works. I tried change the optimization level but not helped. The problem that I don't see any error. Just not working some functional. And I can't debug release version of app. How to solve this problem?

As a last change we added following saga, when we remove calling this saga it works

import { select, take, takeLatest, call, put, fork, race } from 'redux-saga/effects';
import R from 'ramda';
import V from 'o-validator';
import * as actionCreators from './actions';
import { redirectTo, showModalError, showModal, showOtp, closeOtp, errorOtp, loader, keychainSet } from '../../../actions/app-actions';
import { storeSession, refreshSession } from '../../../actions/session-actions';
import I18n from 'react-native-i18n';
import {
  KEYCHAIN_RESET,
  KEYCHAIN_GET,
  KEYCHAIN_RESULT
} from '../../../constants/action-types';


import { validatePassword, createCustomError, serverError } from '../../../services/utils';

const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms))


export function * ChangePasswordWatcher( api, action ) {
        yield fork( ChangePasswordFormWatcher, api, action );
}

export function * ChangePasswordFormWatcher(api, action){
  while (true) {
    yield race({
      changePasswordProcess: call(ChangePasswordStart, api),
      cancel: take(['CHANGE_PASSWORD_PASSWORD_RESET'])
    });
    //yield put( loader('hide') );
        yield put( loader('hide') );


  }
}




/**
 * Change Password Sagas starter
 *
 * @param {function} api - api object
 * @param {object} action - action from dispatch
 * @returns
 */
export function * ChangePasswordStart(api, action) {
    try {
            while (true) {
                const { formData } = yield take('CHANGE_PASSWORD_FORM_SUBMIT');
                                let oldPassword = formData.oldPassword;
                                let newPassword = formData.newPassword;
                                let newPasswordConfirmation = formData.newPasswordConfirmation;


                                yield put({
                                type: 'CHANGE_PASSWORD_FORM_VALID'
                              });

                                const validate = validateForm( 'changePasswordForm', formData );
                                if ( validate.valid ) {
                                        yield put( actionCreators.submitChangePasswordFormValid() );
                                        yield put( loader('show') );


                                        let newPasswordResponse = yield call( api.setChangePassword, oldPassword, newPassword);
                    yield put( loader('hide') );
                    if ( !newPasswordResponse.ok ) {

                                            let errors = serverError(newPasswordResponse);
                                            console.log(errors);
                                      console.log('errors newPasswordResponse');

                                      yield put( showModalError({ error: errors }));
                                      yield put( actionCreators.submitNewPasswordFormFailed( errors ) );

                                        //  return false;
                                        }
                                        else {


                                        yield put({
                                            type: KEYCHAIN_GET,
                                            // resultAction: ''
                                        });


                                        const keychain = yield take(KEYCHAIN_RESULT);

                    // Save to Keychain
                                        yield put( keychainSet({
                                            login: keychain.login || false,
                                            password: keychain.password || false
                                        }) );

                            // final screen
                                        yield put( redirectTo('thankyou') );
                                        yield call( delay, 300 );
                                        yield put( actionCreators.changePasswordResetState() );
                                    }

                                }
                                else {
                                    yield put( showModalError({ error: validate.errors }));
                                    yield put( actionCreators.submitChangePasswordFormFailed( validate.errors ));
                                    yield put( actionCreators.changePasswordFailed() );


                    //                      yield put( actionCreators.submitFinFormFailed( ret.errors ) );
                //                      yield put( actionCreators.registrationFailed());
                              }
          // Reset login
         //  yield call( delay, 300 );
        //  yield put( actionCreators.resetState() );

        }

    } catch (e) {
            console.log(e);
    }


}




export function validateForm( formKey, formData ) {
  let
  ret = {
    valid: true,
    errors: false
  },
  schema: {};

  switch ( formKey ) {
    case 'changePasswordForm':
        schema = {
                    oldPassword: V.required( validatePassword ),
                    newPassword: V.required( validatePassword ),
                    newPasswordConfirmation: V.required( R.equals( formData.newPassword ) )
                };
      break;

    default:
      break;
  }

  ret.valid = V.validate( schema, formData );

  if ( !ret.valid ) {
    ret.errors = V.getErrors( schema, formData );
    ret.errors = R.zipObj( R.pluck('property', ret.errors), ret.errors );
  }

  console.log('isValid: ' + ret.valid.toString());

  return ret;
}

To comment all Console.log statements not helped

import { select, take, takeLatest, call, put, fork, race } from 'redux-saga/effects';
import R from 'ramda';
import V from 'o-validator';
import * as actionCreators from './actions';
import { redirectTo, showModalError, showModal, showOtp, closeOtp, errorOtp, loader, keychainSet } from '../../../actions/app-actions';
import { storeSession, refreshSession } from '../../../actions/session-actions';
import I18n from 'react-native-i18n';
import {
  KEYCHAIN_RESET,
  KEYCHAIN_GET,
  KEYCHAIN_RESULT
} from '../../../constants/action-types';


import { validatePassword, createCustomError, serverError } from '../../../services/utils';

const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms))


export function * changePasswordScreenWatcher( api, action ) {
        yield fork( ChangePasswordFormWatcher, api, action );
}

export function * ChangePasswordFormWatcher(api, action){
  while (true) {
    yield race({
      changePasswordProcess: call(ChangePasswordStart, api),
      cancel: take(['CHANGE_PASSWORD_PASSWORD_RESET'])
    });
    //yield put( loader('hide') );
        yield put( loader('hide') );


  }
}




/**
 * Change Password Sagas starter
 *
 * @param {function} api - api object
 * @param {object} action - action from dispatch
 * @returns
 */
export function * ChangePasswordStart(api, action) {
    try {
            while (true) {
                const { formData } = yield take('CHANGE_PASSWORD_FORM_SUBMIT');
                                let oldPassword = formData.oldPassword;
                                let newPassword = formData.newPassword;
                                let newPasswordConfirmation = formData.newPasswordConfirmation;


                                yield put({
                                type: 'CHANGE_PASSWORD_FORM_VALID'
                              });

                                const validate = validateForm( 'changePasswordForm', formData );
                                if ( validate.valid ) {
                                        yield put( actionCreators.submitChangePasswordFormValid() );
                                        yield put( loader('show') );


                                        let newPasswordResponse = yield call( api.setChangePassword, oldPassword, newPassword);
                    yield put( loader('hide') );
                    if ( !newPasswordResponse.ok ) {

                                            let errors = serverError(newPasswordResponse);
                                            //console.log(errors);
                                      //console.log('errors newPasswordResponse');

                                      yield put( showModalError({ error: errors }));
                                      yield put( actionCreators.submitNewPasswordFormFailed( errors ) );

                                        //  return false;
                                        }
                                        else {


                                        yield put({
                                            type: KEYCHAIN_GET,
                                            // resultAction: ''
                                        });


                                        const keychain = yield take(KEYCHAIN_RESULT);

                    // Save to Keychain
                                        yield put( keychainSet({
                                            login: keychain.login || false,
                                            password: keychain.password || false
                                        }) );

                            // final screen
                                        yield put( redirectTo('thankyou') );
                                        yield call( delay, 300 );
                                        yield put( actionCreators.changePasswordResetState() );
                                    }

                                }
                                else {
                                    yield put( showModalError({ error: validate.errors }));
                                    yield put( actionCreators.submitChangePasswordFormFailed( validate.errors ));
                                    yield put( actionCreators.changePasswordFailed() );


                    //                      yield put( actionCreators.submitFinFormFailed( ret.errors ) );
                //                      yield put( actionCreators.registrationFailed());
                              }
          // Reset login
         //  yield call( delay, 300 );
        //  yield put( actionCreators.resetState() );

        }

    } catch (e) {
            //console.log(e);
    }


}




export function validateForm( formKey, formData ) {
  let ret = {
    valid: true,
    errors: false
  };

  switch ( formKey ) {
    case 'changePasswordForm':
        schema = {
                    oldPassword: V.required( validatePassword ),
                    newPassword: V.required( validatePassword ),
                    newPasswordConfirmation: V.required( R.equals( formData.newPassword ) )
                };
      break;

    default:
      break;
  }

  ret.valid = V.validate( schema, formData );

  if ( !ret.valid ) {
    ret.errors = V.getErrors( schema, formData );
    ret.errors = R.zipObj( R.pluck('property', ret.errors), ret.errors );
  }

  //console.log('isValid: ' + ret.valid.toString());

  return ret;
}

React-native ios application build with expo returns error 413 with publish

$
0
0

i have problem with running build react-native application based on expo

expo build:ios returns

Request failed with status code 413 Error: Request failed with status code 413 at createError (/usr/local/lib/node_modules/expo-cli/node_modules/axios/lib/core/createError.js:16:15) at settle (/usr/local/lib/node_modules/expo-cli/node_modules/axios/lib/core/settle.js:17:12) at IncomingMessage.handleStreamEnd (/usr/local/lib/node_modules/expo-cli/node_modules/axios/lib/adapters/http.js:237:11) at IncomingMessage.emit (events.js:205:15) at endReadableNT (_stream_readable.js:1154:12) at processTicksAndRejections (internal/process/task_queues.js:84:9)

Thanks a lot for any advice


Pubnub preventing detox syncing

$
0
0

Need some help with Detox. I’ve got a similar issue to https://github.com/wix/detox/issues/272



We have a Pubnub publish-subscribe SDK included in our app. So, when running a detox test, it will always time out, because it will wait for the connection to close.

I’ve tried both setURLBlacklist on launch and detoxURLBlacklistRegex but with no luck. The logs still say:

[com.wix.Detox:EarlGreyStatistics] App State -> busy Waiting for network requests to finish: (
    "https://ps15.pndsn.com/v2/subscribe/sub-c-xxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”

I’m fairly positive my regex is correct. The regex mentioned in the issue mentioned above doesn’t work. I wouldn't normally ask for help with simple regex, but my knowledge of EarlGrey is minimal and i've been battling with this for a while.

I need to ignore all requests made to ps[0-9][0-9].pndsn. A little help with the regex, or Blacklist array would be much appreciated.

  await device.launchApp({permissions: { notifications: 'YES' }, launchArgs: { 'detoxPrintBusyIdleResources': 'YES' , 'detoxURLBlacklistRegex' : '\\(".*pndsn.com.*"\\)'}});
  await device.setURLBlacklist([".*ps1.pndsn.com.*",".*ps2.pndsn.com.*",".*ps3.pndsn.com.*",".*ps4.pndsn.com.*",".*ps5.pndsn.com.*",".*ps6.pndsn.com.*",".*ps7.pndsn.com.*",".*ps8.pndsn.com.*",".*ps9.pndsn.com.*",".*ps10.pndsn.com.*",".*ps11.pndsn.com.*",".*ps12.pndsn.com.*",".*ps13.pndsn.com.*",".*ps14.pndsn.com.*",".*ps15.pndsn.com.*",".*ps16.pndsn.com.*",".*ps17.pndsn.com.*",".*ps18.pndsn.com.*",".*ps19.pndsn.com.*.",".*ps20.pndsn.com.*"]);

Note: If I disable synchronisation the app hangs on initialisation. This is for an iOS app.

React Native Random Inner screen flashes for sec before splash screen in iOS

$
0
0

I have created a switch navigator between the auth and app screens. The first time it worked fine but after when we use the app for some time it shows a random screen before splash when we open the application again. On Android, it works fine.

Here's my code for app navigator:

// Authentication Screens Stack
const AuthStack = createStackNavigator(
    {
        LoginScreen: LoginScreen,
        // Login With Instagram Screen
        LoginInstagram: LoginInstagramScreen,
        RegisterScreen: RegisterScreen,
        ForgotPasswordScreen: ForgotPasswordScreen
},
    {
        // See https://reactnavigation.org/docs/en/stack-navigator.html#stacknavigatorconfig
        headerMode: 'none',
}
);
// Main App Stack from Home Screens
const AppStack = createStackNavigator(
    {
        DrawerScreen: DrawerNavigator,
},
    {
        // See https://reactnavigation.org/docs/en/stack-navigator.html#stacknavigatorconfig
        headerMode: 'none',
}
);
// Switch Navigator Between Authentication and Home Screens
const SwitchStack = createSwitchNavigator(
    {
        Auth: AuthStack,
        App: AppStack,
},
    {
        // See https://reactnavigation.org/docs/en/stack-navigator.html#stacknavigatorconfig
        headerMode: 'none',
}
);

export default createAppContainer(SwitchStack)

Here's code for app.js

render() {
return (
/**
 * @see https://github.com/reduxjs/react-redux/blob/master/docs/api/Provider.md
 */
<Provider store={store}>
{/**
 * PersistGate delays the rendering of the app's UI until the persisted state has been retrieved
 * and saved to redux.
 * The `loading` prop can be `null` or any react instance to show during loading (e.g. a splash screen),
 * for example `loading={<SplashScreen />}`.
 * @see https://github.com/rt2zz/redux-persist/blob/master/docs/PersistGate.md
 */}
<PersistGate loading={<SplashScreen />} onBeforeLift={this.onBeforeLift} persistor={persistor}>
{this.state.gateLifted ? <RootScreen LoginStatus={this.state.isLogin} /> : <SplashScreen />}
{/* {<RootScreen LoginStatus={this.state.isLogin} />} */}
</PersistGate>
</Provider>
)
}

I have seen many apps showing this type of behaviour but not found anything about it. Any help would be appreciated. Thanks in advance

every file .h not found in xcode 9

$
0
0

I was trying to build & run react-native project in iOS, but I got the error when run commands react-native run-ios.

Error :

fatal error: 'UIKit/UIUserActivity.h' file not found

#import <UIKit/UIUserActivity.h>

Sometimes when I build with xcode the xcode was quit unexpectedly



I have already try another solution but still failed.By the way I use :
react-native version 0.59
Xcode 9
OS mac Sierra

Please help I have got stuck in 3 weeks but not have best solution.

React-native-final-tree-view : On clicking a particular node,the entire tree closes. How can I resolve this?

$
0
0

I'm developing a react-native app which consists of a tree view for which I have used the React-native-final-tree-view library. On clicking on a node,The entire tree closes and also the children is expanded={true} by default. How can I resolve this?

  handleNodeClick = (node,level) => {
    console.log("onPress called ", node['chapterTitle'] === undefined ? node['sectionTitle'] : node['chapterTitle']);
  }

Does Firebase Cloud Messaging supports Pushkit? [duplicate]

Viewing all 16558 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>