//tips
//smart contract
データベースへのarray型データの追加は確認できた。
今度はarray型のデータを読み取り活用する方に移る。
これができれば、arrayに格納したfollower一覧を表示することも可能になる。
pile.followers = data.followers ?data.followers:null
まずはデータベースの中からfollowersデータの抜き出しを行えるようgetStaticPropsに設定。
引き受けデータの中からfollwersのデータをログで抽出してみる。
if(Item.followers !=null||Item.followers !=undefined){
console.log(Item.followers)
console.log(Item.followers.length)
きちんとarrayで抽出できた。
For authでのauth登録時にuseridなどの登録も一緒にデータベースに格納する形にする。
現在のuseridなどはデータベースに直接て入力している内容になっていることを忘れない。この設定は[id].jsにて行う。
pile.following = data.following ?data.following:nullも一緒に作成して、各々のSNSマークの下に総数を表示させる。
const [followers,setfollowers]=useState('')
const [following,setfollowing]=useState('')
if(Item.followers !=null||Item.followers !=undefined){
if(followers==undefined||followers==null||followers==''){
setfollowers(Item.followers)
}
}
if(Item.following !=null||Item.following !=undefined){
if(following==undefined||following==null||following==''){
setfollowing(Item.following)
}
}
一旦これらで挙動を確認の上数字を表維持させる。setfollowing(Item.following)で空が引き渡されるときに空ループが延々に続くのかも確認。
followers:{()=>{followers?followers.length:"0"}} following:{()=>{following?following.length:"0"}}
関数の実行でないので()=>は不要で、
followers:{followers?followers.length:"0"} following:{following?following.length:"0"}
できちんと反映を確認できた。
Followボタンを作る必要があるがその前に、followersボタンをクリックすると中身のusernameを取り出せることを確認する。
<p onClick={() => console.log('hi')}>followers:{followers?followers.length:"0"}</p>
Pなどとすると改行されてしまうのでspanで対応することにした。
<span onClick={() => console.log('hi')}>followers:{followers?followers.length:"0"}</span> <span>following:{following?following.length:"0"}</span>
こちらにてonClick={() => console.log('hi’)}動作は無事に確認できている。
onClick={handleOnArraytest}
async function handleOnArraytest(e) {
console.log('handleOnArraytest')
}
きちんと格納されたarrayの内容を抽出することができた。
async function handleOnArraytest(e) {
console.log('handleOnArraytest')
if(followers){
followers.forEach(Item=> console.log(Item))
}
}
この取り出した内容の表示場所・表示形態などは考える必要がある。
Windowにポップアップさせるか、右サイドバーをスライドで持ってくるか、と考えていたが、別ページを作成し、そのままpropsにarray情報まで入れなくても、クリックされたページの[id]情報をそのページに渡せば良いか、followers一覧とfollowing一覧をすんなり表示できる。
Twitterのもどうなっているか確認したら同様の構造になっていた、ただ、followers一覧とfollowing一覧は別のurlにしている。followers一覧でミュート・ブロックなどの設定も行えるようにしているからか。そうすると、ここでは認証済みのページで編集する必要がありそう。
認証されていないページでは、それらの機能は表示されないようにすることになる。
これは参考になる。following一覧を表示するページを作るか。