質問編集履歴

2

試したこと、質問したいこと追加

2022/01/10 09:05

投稿

moootoko_ojisan
moootoko_ojisan

スコア32

test CHANGED
File without changes
test CHANGED
@@ -294,6 +294,26 @@
294
294
 
295
295
 
296
296
 
297
+ ・useEffectの実行を`listModeSwitched`依存に変更
298
+
299
+ ⇒スイッチを切り替えるたびにスナップショット取得が実行されて、動作が非常に遅くなってしまう
300
+
301
+
302
+
303
+
304
+
305
+ ### 質問したいこと
306
+
307
+
308
+
309
+ ①ヘッダーオプションをuseEffectで定義する状態のまま、スイッチの動作が想定通りになる方法があればお聞きしたいです。
310
+
311
+
312
+
313
+ ②`headerRight`を一度で定義せずあとからコンポーネントを追加できるような方法はあるのでしょうか。
314
+
315
+  (useEffectでログアウトボタン追加、他の部分でスイッチ追加 のように)
316
+
297
317
 
298
318
 
299
319
  ### 補足情報(FW/ツールのバージョンなど)

1

リスト表示のコードを省略

2022/01/10 09:05

投稿

moootoko_ojisan
moootoko_ojisan

スコア32

test CHANGED
File without changes
test CHANGED
@@ -250,125 +250,17 @@
250
250
 
251
251
  // Bモードで表示
252
252
 
253
- return okawariListState.list.length === 0 ? (
254
-
255
- <View style={styles.container}>
256
-
257
- {okawariListState.loading ? (
258
-
259
- <Loading isLoading={okawariListState.loading} />
260
-
261
- ) : (
262
-
263
- <View style={styles.emptyInner}>
264
-
265
- <Text>No Okawari</Text>
266
-
267
- </View>
268
-
269
- )}
270
-
271
- </View>
272
-
273
- ) : (
274
-
275
- <View style={styles.container}>
276
-
277
- <ShareList items={okawariListState.list} switched={listModeSwitched} />
278
-
279
- </View>
280
-
281
- );
282
-
283
253
  } else {
284
254
 
285
255
  // Aモードで表示
286
256
 
287
- return shareListState.list.length === 0 ? (
288
-
289
- <View style={styles.container}>
290
-
291
- {shareListState.loading ? (
292
-
293
- <Loading isLoading={shareListState.loading} />
294
-
295
- ) : (
296
-
297
- <View style={styles.emptyInner}>
298
-
299
- <Text>No Shared Content</Text>
300
-
301
- </View>
302
-
303
- )}
304
-
305
- </View>
306
-
307
- ) : (
308
-
309
- <View style={styles.container}>
310
-
311
- <ShareList items={shareListState.list} switched={listModeSwitched} />
312
-
313
- </View>
314
-
315
- );
316
-
317
257
  }
318
258
 
319
259
  }
320
260
 
321
261
 
322
262
 
323
- const styles = StyleSheet.create({
263
+ const styles = StyleSheet.create({ ... });
324
-
325
- container: {
326
-
327
- flex: 1,
328
-
329
- },
330
-
331
- emptyInner: {
332
-
333
- height: '100%',
334
-
335
- justifyContent: 'center',
336
-
337
- alignItems: 'center',
338
-
339
- },
340
-
341
- headerRightContainer: {
342
-
343
- flex: 1,
344
-
345
- flexDirection: 'row',
346
-
347
- },
348
-
349
- listModeSwitchFrame: {
350
-
351
- flexDirection: 'row',
352
-
353
- marginRight: 32,
354
-
355
- },
356
-
357
- listModeSwitchIcon: {
358
-
359
- alignSelf: 'center',
360
-
361
- },
362
-
363
- lougoutButtonFrame: {
364
-
365
- flexDirection: 'row',
366
-
367
- marginRight: 12,
368
-
369
- },
370
-
371
- });
372
264
 
373
265
 
374
266