teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

誤字

2021/07/24 13:00

投稿

ad_mania_g
ad_mania_g

スコア0

title CHANGED
File without changes
body CHANGED
@@ -110,7 +110,7 @@
110
110
  useEffect(()=>{
111
111
  (async () => {
112
112
  const Lists = await Api.initUserPost();
113
-
113
+        setLists(Lists);
114
114
  console.log(Lists);
115
115
  }) ()
116
116
  },[])

3

useEffectを変更

2021/07/24 13:00

投稿

ad_mania_g
ad_mania_g

スコア0

title CHANGED
File without changes
body CHANGED
@@ -99,4 +99,19 @@
99
99
 
100
100
  ご助言頂ければ幸いです。
101
101
 
102
- よろしくお願いします。
102
+ よろしくお願いします。
103
+
104
+
105
+
106
+ **追加**
107
+ useEffect内でasync awaitを使うのが良くないと言うことを教えて頂いたので、
108
+ uesEffectを下記のコードに変更しましたが、同様のエラーが出ます。
109
+ ```ここに言語を入力
110
+ useEffect(()=>{
111
+ (async () => {
112
+ const Lists = await Api.initUserPost();
113
+
114
+ console.log(Lists);
115
+ }) ()
116
+ },[])
117
+ ```

2

修正しました。

2021/07/24 12:59

投稿

ad_mania_g
ad_mania_g

スコア0

title CHANGED
File without changes
body CHANGED
@@ -18,7 +18,7 @@
18
18
  const [Lists, setLists]=useState([]);
19
19
 
20
20
  useEffect(async ()=>{
21
- const Lists =await Api.fetchposts();
21
+ const Lists =await Api.initUserPost();
22
22
  setLists(Lists);
23
23
  },[])
24
24
 

1

一部だったMessageSender.jsを全文に変更しました。

2021/07/24 12:47

投稿

ad_mania_g
ad_mania_g

スコア0

title CHANGED
File without changes
body CHANGED
@@ -9,18 +9,68 @@
9
9
  import React, {useState, useEffect, useContext} from "react";
10
10
  import { AuthContext } from "../providers/AuthProvider";
11
11
  import * as Api from "../service/api";
12
+ import {Link} from "react-router-dom";
13
+ import {Avatar} from "@material-ui/core";
12
14
 
13
15
  const MessageSender=()=>{
14
16
  const currentUser =useContext(AuthContext);
15
-
16
- const [inputComment, setInputComment] =useState("");
17
+ const [inputName, setInputName] =useState("");
17
- const [lists, setLists]=useState([]);
18
+ const [Lists, setLists]=useState([]);
18
19
 
19
20
  useEffect(async ()=>{
20
- const Lists =await Api.initUserPost();
21
+ const Lists =await Api.fetchposts();
21
22
  setLists(Lists);
22
- console.log(Lists);
23
23
  },[])
24
+
25
+ const todoList =Lists.map((post)=>{
26
+ return (
27
+ <div key={post.id}><p><Avatar src={post.photoURL} />{post.displayName}</p>投稿内容:{post.comment}<hr></hr></div>
28
+ );
29
+ })
30
+
31
+ const post= ()=>{
32
+ Api.addPost(
33
+ inputName,
34
+ currentUser.currentUser.photoURL,
35
+ currentUser.currentUser.displayName,
36
+ currentUser.currentUser.uid
37
+ );
38
+ setInputName("");
39
+ }
40
+
41
+ return(
42
+ <div>
43
+ {currentUser.currentUser ?
44
+ (
45
+ <>
46
+ <form>
47
+ <textarea
48
+ placeholder="Post"
49
+ value={inputName}
50
+ onChange={(e)=>setInputName(e.currentTarget.value)}
51
+ />
52
+ <button type="button" onClick={()=>post()} disabled={inputName.length >0 ? false:true}>投稿</button>
53
+ </form>
54
+ </>
55
+ ) : (
56
+ <>
57
+ <div>
58
+ <p>loginして投稿してください</p>
59
+ <p><Link to="/login">ログイン</Link></p>
60
+ </div>
61
+ </>
62
+ )}
63
+ <div>
64
+ <h2>コメント</h2>
65
+ <ul>{todoList}</ul>
66
+ {console.log(Lists)}
67
+ </div>
68
+
69
+ </div>
70
+ )
71
+ }
72
+
73
+ export default MessageSender;
24
74
  ```
25
75
  api.js
26
76
  ```ここに言語を入力