묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 리액트 네이티브 기초
Execution failed for task ':app:checkDebugDuplicateClasses'. 에러 해결
강의에서 <android:exported="false"> 부분 이후 안드로이드 실행시 Execution failed for task ':app:checkDebugDuplicateClasses'. 오류가 나면 gradle.properties 파일에 아래 부분을 추가해보세요android.useAndroidX=trueandroid.enableJetifier=true
-
미해결따라하며 배우는 리액트 네이티브 기초
선생님 이다음 remote push 부분 강의가 없습니다.
선생님 이다음 remote push 부분 강의가 없습니다. 누락된걸까요?
-
미해결따라하며 배우는 리액트 네이티브 기초
Check the render method of `SceneView`. 오류
선생님 expo로 Aos 실행했을때 Check the render method of SceneView. 오류가 납니다.React Navigation 기능을 안쓰고 했을때는 오류가 안나는데 어떻게 해결하나요?
-
미해결따라하며 배우는 리액트 네이티브 기초
진도가 100% 완료가 안됩니다.
안녕하세요.진도가 100% 완료가 안됩니다.첨부드린 것처럼 마지막 강의가 . 으로 되어 있고 눌러봐도 영상 나오는 것도 없고 강의가 진행되는게 없습니다. 마지막 강의 완료가 안되서 진도율이 98%에서 멈춰있고 100%가 안되는거 같은데 확인 부탁드립니다.다른 강의는 모두 수강했습니다.
-
해결됨따라하며 배우는 리액트 네이티브 기초
진행도가 100% 안찍혀요
안녕하세요. 모두 수강했는데 진행도가 100% 안찍히는데 원인을 알수있을까요? 혹시 마지막 강의 "." 제목으로 된것 떄문인가요?이거 어떻게 수강 체크하는지 알수있을까요??
-
미해결따라하며 배우는 리액트 네이티브 기초
프로젝트 예제 코드는 깃헙에서 따로 볼 수 있을까요?
깃헙에 올리셨다면 링크 공유해주실수 있나요?
-
미해결따라하며 배우는 리액트 네이티브 기초
expo 환경설정 관련해서 문의드립니다.
expo 환경설정중에 궁금한 점이 생겨 문의드립니다. 강의에 나온데로 그대로 설치를 했는데 파일이 구성이 달라 문의드립니다. 영상에서는 app.js 파일이 있는데 저의 파일안에는 app.js 파일이 없습니다... 구성도 많이 다른것 같습니다. 어떤 원인에서 이러한 결과가 나오게 되었는지 궁금합니다. 감사합니다.
-
미해결따라하며 배우는 리액트 네이티브 기초
'NavigationContainer' 중첩 오류
안녕하세요, React Navigation 강의를 수강하다가 오류가 해결되지 않아서 질문드립니다. expo를 통해 다음과 같이 index.js에 React Navigation을 적용했습니다.import { store } from "@/redux/store"; import MainScreen from "./screens/MainScreen"; import { Provider } from "react-redux"; import { NavigationContainer } from "@react-navigation/native"; import { createNativeStackNavigator } from "@react-navigation/native-stack"; import LoginScreen from "./screens/LoginScreen"; export default function HomeScreen() { const Stack = createNativeStackNavigator(); return ( <Provider store={store}> <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Main" component={MainScreen} /> <Stack.Screen name="Login" component={LoginScreen} />{" "} </Stack.Navigator> </NavigationContainer> </Provider> ); } 그러나 다음과 같은 오류가 뜨며 빈화면만 보이더라구요ㅠError: Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them. 찾아보니 NavigationContainer가 중첩되었다는 것 같은데, 저는 계속해서 그대로 강의를 따라가고 있었고, 따로 NavigationContainer를 적용한 파일이 존재하지 않습니다 ㅠ 다음 속성을 추가해도 오류가 해결되지 않습니다 ㅠ 아마 어디선가 부모에서 NavigationContainer가 적용된 것 같은데 찾을 수가 없네요 ㅠㅠindependent={true} 조금 더 찾아보니 expo-router랑 충돌이 난 거일 수도 있다는데 정확하게 모르겠네요 ㅠㅠ
-
미해결따라하며 배우는 리액트 네이티브 기초
강의 내용이 24년 현재 버전과 너무 다릅니다.
강의내용이 24년 현재 9월 듣고 있는데 강의 내용과 내려받는 리엑트 네이티브 파일구조가 달라서 너무 어렵습니다. 현재 강의 맞는 구버전으로 하면 expo app 버전이 구버전과 맞지 않는다고 하거나 강의 보면서 하기도 벅찬데 각종 버전에 따른 오류가 너무 많이 나오니 해결하면서 강의 듣기에 너무 힘듭니다. 뭔가 방법이 없을까요? 제가 너무 배우고 싶었던 리엑트 네이티브 강의인데 초반에 오류 수정하다 끝나고 이러니 의지가 꺽여버립니다.
-
미해결따라하며 배우는 리액트 네이티브 기초
InputForm 생성하기에서 TextInput과 Pressable이 보이지 않아요.
레이아웃 표시를 했을때, 위치는 잡히는 것 같지만 시각적으로 전혀 보이지 않아요. 마치 뒤에 가려진 것 처럼요 // InputForm.js import { KeyboardAvoidingView, Platform, Pressable, StyleSheet, Text, TextInput, View } from 'react-native' import React from 'react' const InputForm = () => { return ( <KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : 'height'} style={styles.addFormContainer}> <TextInput style={styles.inputField} placeholder="할 일을 작성해주세요." /> <Pressable style={styles.addButton}> <Text style={styles.addButtonText} >+</Text> </Pressable> </KeyboardAvoidingView> ) } export default InputForm const styles = StyleSheet.create({ addFormContainer: { flexDirection: 'row', marginTop: 'auto', marginBottom: 30, paddingHorizontal: 20, backgroundColor: '#f7f8fa' }, inputField: { flex: 1, height: 42, padding: 5, marginRight: 25, borderRadius: 4, borderColor: 'rgba(0, 0, 0, 0.2)', borderWidth: 1, color: '#000000', fontSize: 15, textAlignVertical: 'center' }, addButton: { justifyContent: 'center', alignItems: 'center', width: 42, height: 42, borderRadius: 4, backgroundColor: 'rgba(0,0,0,0.7)', shadowColor: '#000000', shadowOpacity: 0.14, shadowRadius: 8, shadowOffset: { width: 0, height: 4 } }, addButtonText: { color: 'white', fontSize: 25 }, }) // MainScreen.js import { SafeAreaView, StyleSheet, Text, View, StatusBar, Platform } from 'react-native' import React from 'react' import InputForm from '../components/InputForm' const MainScreen = () => { return ( <View> <SafeAreaView style={styles.container}> <StatusBar barStyle={'default'} /> <Text style={styles.pageTitle}>ToDo App</Text> <View style={styles.listView}> <Text style={styles.listTitle}>할 일</Text> </View> <View style={styles.separator} /> <View style={styles.listView}> <Text style={styles.listTitle}>완료된 일</Text> </View> <InputForm /> </SafeAreaView> </View> ) } export default MainScreen const styles = StyleSheet.create({ container: { flex: 1, paddingTop: Platform.OS = 'android' ? 20 : 0, backgroundColor: '#f7f8fa' }, pageTitle: { marginBottom: 35, paddingHorizontal: 15, fontSize: 54, fontWeight: '600', }, separator: { marginHorizontal: 10, marginTop: 25, marginBottom: 10, borderBottomWidth: 1, borderBottomColor: 'rgba(0,0,0,0.2)' }, listView: { flex: 1, }, listTitle: { marginBottom: 25, paddingHorizontal: 15, fontSize: 41, fontWeight: '500', } }) // App.js import { StyleSheet, Text, View } from 'react-native'; import MainScreen from './screens/MainScreen'; export default function App() { return ( <View style={styles.container}> <MainScreen /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'flex-start', justifyContent: 'center', }, }); // package.json { "name": "awesomeproject", "version": "1.0.0", "main": "node_modules/expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "expo": "^51.0.27", "expo-status-bar": "~1.12.1", "react": "18.2.0", "react-native": "0.74.5" }, "devDependencies": { "@babel/core": "^7.24.0" }, "private": true }
-
미해결따라하며 배우는 리액트 네이티브 기초
Expo로 ios, android 실행 시 ... 에러 ..... 제발 도와주세요
이것들이 도대체 뭘까요 ....안드로이드는 나오지도 않네요 .... 제발 알려주세요 ... "type": "module" 이거 에러는 왜자꾸 나는걸까요 ㅠㅠ node버전 확인해보면 22이상이라 에러가 안 떠야 하는데 계속 뜨네요 ㅠㅠ 지금 에러 때문에 아무것도 안되는데 제발 도와주세요 ..
-
미해결따라하며 배우는 리액트 네이티브 기초
Expo로 npm start 시 빨간 warning ...
Expo로 폴더를 만들어서 npm start를 했을 시 사진처럼 빨간 Warning이 나옵니다 ..어떻게 해결해야 하나요??package.json에 "type": "module" 작성도 해봤고,Xcode도 다운받아서 해봤습니다 ㅠㅠㅠ 근데도 사라지지 않네요 어떻게 해야하나요 ..
-
미해결따라하며 배우는 리액트 네이티브 기초
앱 구조에 대해서
혹시 expo를 설치를 했는데 구조가 너무 달라서 질문드립니다! app.js 파일도 없고 component hooks script폴더들이 있는데 어떤식으로 사용이되는 파일인지 모르겠습니다
-
미해결따라하며 배우는 리액트 네이티브 기초
There was a problem loading the requested app
qr코드를 카메라로 찍어서 expo로 열면 다음과 같이 연결할 수 없다고 뜨는데 어떻게 해결할 수 있을까요?
-
미해결따라하며 배우는 리액트 네이티브 기초
StyleSheet를 적용시키면 글자가 안 보입니다.
처음에 학습할 때 진행했던 파일에서는 정상적으로 작동되는데, 새로운 파일을 만들어서 적용시킬 때에는 글자가 안 보입니다. style={styles.container} 부분을 지우면 글자가 보이고, 다시 되돌리면 안 보이는 상황입니다 ㅠㅠ. 어느 부분이 잘못됐는지 알 수 있을까요?import { Platform, SafeAreaView, StatusBar, StyleSheet, Text, View } from 'react-native' import React from 'react' const MainScreen = () => { return ( <SafeAreaView style={styles.container}> <StatusBar barStyle={'default'} /> <Text>Todo App</Text> <View> <Text>할 일</Text> </View> <View /> <View> <Text>완료된 일</Text> </View> </SafeAreaView> ) } export default MainScreen const styles = StyleSheet.create({ container: { flex: 1, paddingTop: Platform.OS === 'android' ? 20 : 10, backgroundColor: '#f8f8fa' } })
-
미해결따라하며 배우는 리액트 네이티브 기초
React Native CLI 환경 대신 expo에서 개발가능할까요?
커리큘럼 내용상 cli 환경에서 인스타그램 클론 개발이 진행되는데혹시 expo 환경에서 개발이 가능할까요?
-
미해결따라하며 배우는 리액트 네이티브 기초
깃허브에서 클론받아온 파일을 실행하려면 어떻게 해야하죠..?
react-native run-ios 해도 안돼요...파일을 새로만들어서 하는게 아니라 클론받아서 하는건데 다른방법이있는건지궁금해요
-
미해결따라하며 배우는 리액트 네이티브 기초
안녕하세요 borderbottomcolor가 작동되질 않습니다.
안녕하세요 수업 잘 듣고 있는데요 안드로이드로 작동하고 있는데 borderbottomcolor가 작동되지 않습니다. margintop이나 이런건 잘 먹이는 데 color만 되질 않아요 왜 그런지 알 수 있을까요?
-
미해결따라하며 배우는 리액트 네이티브 기초
키보드 숫자 키패드의 Enter 기능이 작동하지 않는 문제
const InputForm = () => { const [currentValue, setCurrentValue] = useState(""); const dispatch = useDispatch(); const handleSubmit = () => { if (currentValue !== "") { dispatch(addTodo(currentValue)); setCurrentValue(""); } }; return ( <KeyboardAvoidingView behavior={Platform.OS === "ios" ? "padding" : "height"} style={styles.addFormcontainer} > <TextInput placeholder='할 일을 작성해주세요.' style={styles.inputField} value={currentValue} onChangeText={setCurrentValue} onSubmitEditing={handleSubmit} /> <Pressable style={styles.addButton} onPress={handleSubmit}> <Text style={styles.addButtonText}>+</Text> </Pressable> </KeyboardAvoidingView> ); }; export default InputForm;현재 안드로이드 스튜디오 에뮬레이터 사용 중입니다.onSubmitEditing을 통해 키보드에서도 Enter를 사용해 handleSubmit 함수를 사용할 수 있도록 구현했지만 키보드 숫자 키패드의 Enter를 사용하면 handleSubmit 함수가 실행되지 않습니다. 숫자 키패드의 Enter를 통해서도 handleSubmit 함수가 실행되도록 하려면 어떻게 코드를 작성해야 하나요?
-
미해결따라하며 배우는 리액트 네이티브 기초
createStore를 통해 middleware를 등록할 때 오류 (5.0.1 버전)
const store = createStore(rootReducer, middleware);강의와 같이 위처럼 코드를 작성할 시 에러가 발생합니다. 버전은 5.0.1 버전입니다.공식 문서에서 createStore 부분을 보면 reducer와 enhancer이외에 preloadedState라는 값이 있는데 해당 값을 넣어주니 정상적으로 작동했습니다.const preloadedState = { counter: 0, }; const store = createStore(rootReducer, preloadedState, middleware);preloadedState는 선택적으로 사용할 수 있다고 되어 있는데 왜 사용하지 않으면 에러가 발생하는지 궁금합니다.또한 preloadedState는 store의 초기 상태를 나타내고 있다고 하는데 todos의 초기 상태를 어떻게 설정해야할지 궁금합니다. (그냥 undefined로만 적어도 상관없을까요)