728x90
반응형

1. 같은 와이파이

 

2. 먼저 스마트폰을 컴퓨터에 USB로 연결

 

 

3. cmd 창에서 5555 포트로 지정

adb tcpip 5555

 

성공시 나타나는 내용 : restarting in TCP mode port: 5555

 

4. 이제 USB를 연결해제

 

그다음 스마트폰의 IP주소를 알아내야 합니다.

알아내는 방법은 다양하므로 몇가지만 알려드린후 넘어가겠습니다.

 

설정 앱 - 휴대폰 정보 - 상태(또는 네트워크) - IP 주소

설정 앱 - WIFI - WIFI 고급 설정(또는 WIFI 설정) - IP 주소

 

adb connect <Your IP>:5555

 

성공시 나타나는 내용 : connected to <IP>:5555

 

 

5. adb devices 로 연결 상태를 확인할 수 있습니다.

728x90
반응형
728x90
반응형

watchman watch-del '/Users/유저이름/프로젝트이름' ; watchman watch-project '/Users/유저이름/프로젝트이름'

 

으로 해결

728x90
반응형
728x90
반응형
import * as React from 'react';
import {Alert, Text, TouchableOpacity, View} from 'react-native';

interface ErrorBoundaryProps {}

interface ErrorBoundaryState {
hasError: boolean;
errorMessage: string;
}

export default class ErrorBoundary extends React.Component<
React.PropsWithChildren<ErrorBoundaryProps>,
ErrorBoundaryState
> {
constructor(props: ErrorBoundaryProps) {
super(props);
this.state = {hasError: false, errorMessage: ''};
}

static getDerivedStateFromError(_error: Error) {
return {hasError: true};
}

componentDidCatch(error: Error, _errorInfo: any) {
this.setState({errorMessage: error.toString()});
}

onRefresh = () => {
Alert.alert('', 'error refresh');
this.setState({hasError: false});
};

render() {
if (this.state.hasError) {
return (
<View
style={{
flex: 1,
justifyContent: 'center',
alignContent: 'center',
backgroundColor: '#ffe2e2',
}}>
<Text>system error</Text>
<Text>{this.state.errorMessage}</Text>
<TouchableOpacity onPress={this.onRefresh}>
<Text>refresh</Text>
</TouchableOpacity>
</View>
);
}

return this.props.children;
}
}
728x90
반응형
728x90
반응형

Any way to disable onPress on child views while swiping?

 

스와이프를 할때도, pressable / touchableopacity 가 event가 먹기에 Pressable을 커스텀했다.

 

import React, {useRef} from 'react';
import {NativeTouchEvent, Pressable, PressableProps} from 'react-native';

export const CustomPressable = ({
onPress,
onPressIn,
onPressOut,
...props
}: PressableProps) => {
const _touchActivatePositionRef = useRef<NativeTouchEvent | null>(null);
const _onPressIn: PressableProps['onPressIn'] = e => {
_touchActivatePositionRef.current = e.nativeEvent;

onPressIn?.(e);
};

const _onPress: PressableProps['onPress'] = e => {
const {pageX, pageY} = e.nativeEvent;

const absX = Math.abs(
(_touchActivatePositionRef.current?.pageX || 0) - pageX,
);
const absY = Math.abs(
(_touchActivatePositionRef.current?.pageY || 0) - pageY,
);

const dragged = absX > 2 || absY > 2;
if (!dragged) {
onPress?.(e);
}
};

return (
<Pressable
onPressIn={_onPressIn}
onPress={_onPress}
onPressOut={onPressOut}
{...props}>
{props.children}
</Pressable>
);
};

Pressable 말고 TouchableOpacity로도 사용이 가능한데, RN공홈에서 Pressable 을 권장하니 참고

728x90
반응형
728x90
반응형

archive 후 testFlight로 업로드를 하는데 평소에 나지 않던 에러가 발생했다.

 

The Info.plist key 'BGTaskSchedulerPermittedIdentifiers' must contain a list of identifiers used to submit and handle tasks when 'UIBackgroundModes' has a value of 'processing'.

 

BGTaskSchedulerPermittedIdentifiers 가 필요하다는 내용이었다.

 

info.plist 에

 

해당 key 값 추가해서 해결

728x90
반응형
728x90
반응형

killall -9 node

rm -rf ios/build

react-native run-ios

728x90
반응형
728x90
반응형

xattr -d com.apple.quarantine /Applications/Flipper.app 

 

728x90
반응형
728x90
반응형

 

  • yarn add -D babel-plugin-transform-remove-console
    Task actions
    • Convert to task
    • Delete
  • babel.config.js 에서 아래와 같이 변경

 

module.exports = {
//  ...
  env: {
     // ...
    production: {
      //...
      plugins: ['babel-plugin-transform-remove-console'],
    },
  },
};

 

 

728x90
반응형
728x90
반응형
npx react-native-clean-project
728x90
반응형
728x90
반응형

@react-natvigation/native 를 사용하면서

 

stack을 쌓으며 기존 페이지를 스텍에서 남기지 않고 다른 페이지로 전환을 해야 하는 경우가있었다.

 

A->B->C 이렇게 페이지 전환을 할때,

 

A 에서 B로 C 로 이동을 하고, C에서 goBack() 을했을때 A로 이동하고 싶을때

 

B에서

 

navigation.replace('C', { param: '파람' });

 

로 사용하면

 

스텍이  ABC 로 쌓이지않고, AC로 쌓인다

728x90
반응형

+ Recent posts