해결된 질문
작성
·
36
·
수정됨
0
아래처럼 defaultProps 가 곧 사라진다는 경고가 뜨는데요
(NOBRIDGE) ERROR Warning: HeaderRight: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.
in HeaderRight (created by SceneView)
in RNSScreenStackHeaderSubview (created by ScreenStackHeaderRightView)
in ScreenStackHeaderRightView (created by SceneView)
in RNSScreenStackHeaderConfig (created by ScreenStackHeaderConfig)
in ScreenStackHeaderConfig
in RNSScreen (created by Animated(Anonymous))
in Animated(Anonymous)
in Suspender (created by Freeze)
in Suspense (created by Freeze)
in Freeze (created by DelayedFreeze)
in DelayedFreeze
in InnerScreen (created by Screen)
in Screen
in ScreenStackItem (created by SceneView)
in SceneView (created by NativeStackView)
in RNSScreenStack (created by ScreenStack)
in Unknown (created by ScreenStack)
in ScreenStack (created by NativeStackView)
in RNCSafeAreaProvider (created by SafeAreaProvider)
in SafeAreaProvider (created by SafeAreaProviderCompat)
in SafeAreaProviderCompat (created by NativeStackView)
in NativeStackView (created by NativeStackNavigator)
in PreventRemoveProvider (created by NavigationContent)
in NavigationContent
in Unknown (created by NativeStackNavigator)
in NativeStackNavigator (created by MainStack)
in MainStack (created by Navigation)
in ThemeProvider
in EnsureSingleNavigator
in BaseNavigationContainer
in NavigationContainerInner (created by Navigation)
in Navigation (created by App)
in UserProvider (created by App)
in App (created by withDevTools(App))
in withDevTools(App)
in RCTView (created by View)
in View (created by AppContainer)
in RCTView (created by View)
in View (created by AppContainer)
in AppContainer
in main(RootComponent)
어떻게 해결해야 하는지 궁금해서 질문 남깁니다!
답변 2
1
안녕하세요,
에러메시지에서 설명하는대로 하면 됩니다.
defaultProps가 다음 릴리즈에서 삭제될 예정이니 JavaScript에서 지원하는 default parameter를 이용하라는 얘기입니다.
예를 들어, HeaderRight 컴포넌트에서는
https://github.com/dvrakry/rn-photo/blob/master/src/components/HeaderRight.js#L6
6 라인을 다음과 같이 수정하고,
const HeaderRight = ({ onPress, disabled = false }) => {
defaultProps 코드를 삭제하면 됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. dvdve님.
리액트의 function components에서 defaultProps
가 곧 사라진다는 경고 메세지를 보신 것 같습니다. 이는 기본 prop 값을 제공하는 방식을 개선하기 위한 변화입니다. JavaScript default parameters
로 대체할 것을 추천하고 있습니다.
다음은 defaultProps
를 대체하여 사용할 수 있는 방법에 대한 간단한 예시입니다:
기존의 defaultProps
사용 방법:
function HeaderRight(props) {
// 컴포넌트 로직
}
HeaderRight.defaultProps = {
title: 'Default Title',
};
위의 defaultProps
를 JavaScript default parameters
로 변경하는 방법:
function HeaderRight({ title = 'Default Title' }) {
// 컴포넌트 로직
}
변경된 방식은 파라미터 목록에서 바로 기본 값을 설정하여 더 간결하게 작성할 수 있습니다.
관련해서 다음 링크를 통해 비슷한 상황에서의 해결 방법을 참고하실 수 있습니다:
- expo SDK51 관련 질문입니다.
이 링크에서는 expo의 SDK 변경으로 인한 defaultProps 관련 경고에 대한 설명과 해결 방안을 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다 선생님!