@@ -40,7 +40,8 @@ Before you begin, you will need:
4040- An Event API created via the AWS Console
4141- Take note of: HTTP endpoint, region, API Key
4242
43- ``` ts
43+ ``` tsx title="src/App.tsx"
44+ import type { EventsChannel } from ' aws-amplify/data' ;
4445import { useState , useEffect } from ' react' ;
4546import { Amplify } from ' aws-amplify' ;
4647import { events } from ' aws-amplify/data' ;
@@ -56,41 +57,45 @@ Amplify.configure({
5657 },
5758});
5859
59- export default function MyComponent () {
60- const [events, setEvents ] = useState <any []>([]);
60+ export default function App () {
61+ const [myEvents, mySetEvents ] = useState <unknown []>([])
6162
6263 useEffect (() => {
63- let channel;
64+ let channel: EventsChannel
65+ console .log (" use effect running" )
6466
6567 const connectAndSubscribe = async () => {
66- channel = await events .connect (' default/channel' );
68+ channel = await events .connect (" default/channel" )
6769
6870 channel .subscribe ({
6971 next : (data ) => {
70- console .log (' received' , data );
71- setEvents ( prev => [data , ... prev ]);
72+ console .log (" received" , data )
73+ mySetEvents (( prev ) => [data , ... prev ])
7274 },
73- error : (err ) => console .error (' error' , err ),
74- });
75+ error : (err ) => console .error (" error" , err ),
76+ })
7577 }
7678
77- connectAndSubscribe ();
79+ connectAndSubscribe ()
7880
79- return () => channel && channel .close ();
80- }, []);
81+ return () => channel && channel .close ()
82+ }, [])
8183
8284 async function publishEvent() {
83- await events .post (" default/channel" , {some: ' data' });
85+ console .log (" publishing " )
86+ await events .post (" default/channel" , { some: " data" })
8487 }
8588
8689 return (
87- < button onClick = {publishEvent }> Publish Event < / button >
88- <ul >
89- {events .map ((event ) = > (
90- <li >{JSON.stringify(event)}< / li >
91- ))}
92- < / ul >
93- );
90+ <>
91+ <button onClick = { publishEvent } >Publish Event</button >
92+ <ul >
93+ { myEvents .map ((event , index ) => (
94+ <li key = { index } >{ JSON .stringify (event )} </li >
95+ ))}
96+ </ul >
97+ </>
98+ )
9499}
95100```
96101
0 commit comments