inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

배달앱 클론코딩 [with React Native]

Redux, Config, EncryptedStorage, AsyncStorage의 차이

AsyncStorage 비동기로 인한 undefined 문제

446

김봉섭

작성한 질문수 10

0

Flatlist 입니다.

const renderItem = {item} => {

return (

<TextInput

value={true || fixDescription[item.order].value}  onChangeText={onChangeText}/>

)

}

item과 fixDescription 둘다 useState 값이고 useEffect (()=>{AsyncStorage})를 통해서 값을 받아옵니다.

추측하기론, 컨솔 해보니 AsyncStorage가 비동기 방식이기 때문에, 처음에 빈칸으로 데이터가 떠서 {true || fixDescription[item.order].value} 이런식으로 데이터 없으면 null로 아예 안보이게 해줬는데 이렇게 하니 화면은 뜨는데 문제가 비동기처리 이후 데이터값이 들어와도 해당 TextInput의 value가 바뀌지 않다는 점이 문제입니다... 

 

console.log(fixDescription[data[0].order].value)

data는 flatlist의 아이템입니다. (flatlist의 item이니 [0]번째를 임의로 주었습니다.)

위의 컨솔 실행시 첫 빌드는 에러가 생기고, 저장해서 화면을 바꾸는( 핫리로드?) 시에는 컨솔이 작동하는 상황입니다.

react-native

답변 1

1

제로초(조현영)

true || ... 은 아무 의미 없는 코드입니다. 항상 true라서 뒤에 코드가 실행되지 않습니다.

value={fixDescription?.[item.order]?.value}

이런 식으로만 쓰면 됩니다.

0

김봉섭

그러네요... true || ...

감사합니다. 옵셔널 체이닝 이군요.

https://ko.javascript.info/optional-chaining

앱실행시 네이버맵 [401] 에러

0

959

2

스타일링 라이브러리

0

147

2

expo, cli 선택 중에 고민이 있습니다.

0

167

2

JDK 버전이 달라도 괜찮나요?

0

223

2

dimenstion usewindowdeminstion

0

120

3

[맥 전용]환경 설정하기 1편 & [맥 전용]환경 설정하기 2편의 영상이 안나옵니다.

0

209

1

jdk11 버전과 gradle 버전의 호환성 관련 질문드립니다.

0

398

2

강의 외 질문입니다!

0

157

2

react native랑 맞는 ui 라이브러리 어떤게 좋을까요?

0

1487

2

react native와 spring boot 연결

0

353

1

java가 아닌 .kt에서 code push 에러가 발생합니다.

0

210

2

flipper 239 에러가 발생합니다.

0

163

2

package.json에 /lib/panino.js 문제입니다.

0

464

2

window - mac 협업 과정 질문합니다

0

214

1

ios 빌드 중 RCTBridgeDelegate.h import 오류

0

289

2

ios 앱 빌드 중 hermesEnabled 관련 오류발생

0

238

2

Socket 연결시 질문 드립니다.!

0

151

2

wifi 환경에서 axios 통신이 로컬서버에서 안됩니다.

0

425

2

iOS render error 질문드립니다.

0

410

2

iOS 가상머신 오류

0

164

2

npc react init 명령어 실행시 발생되는 오류

0

220

1

nom start 시 오류

0

116

1

NextJS 기반으로 만들어서 웹뷰 React Native로 배포 가능한가요?

0

996

2

안드로이드 rn75 버전에 맞게 설정 중에 android13 다운로드에 대해서 막혔습니다!

0

183

2