仕事の都合でReactを初めまして、Material-UIの使い方がよく分かっておりません、、
やりたいこととしては、SNSの「いいねボタン」に似たものを作ることです。
MaterialUIのサイトから持ってきたハートアイコンを使おうと思います。
それをボタンとしての役割にする方法が分からず質問です。
実際に書いたコード
最初は
SnsList.js
1import React, { Component } from 'react'; 2import FavoriteBorderIcon from '@material-ui/icons/FavoriteBorder'; 3 4class Sns extends Component { 5 render() { 6 return( 7 <FavoriteBorderIcon onClick = {() => this.props.SnsPost()}/> 8 ); 9 } 10}
でしたが、当然ただアイコンが表示されただけでしたので、buttonタグで囲みました。
React
1import React, { Component } from 'react'; 2import FavoriteBorderIcon from '@material-ui/icons/FavoriteBorder'; 3 4class Sns extends Component { 5 render() { 6 return( 7 <button><FavoriteBorderIcon onClick = {() => this.props.SnsPost()}/></button> 8 ); 9 } 10}
この実行結果が以下の写真となります(左のゴミ箱マークは今回は質問対象外です)
実現したいこと
ハートアイコンそのものをボタンとして機能させること
buttonタグを使うと、ハートアイコンはボタンとして処理できるのですが、これをハートアイコンだけにするにはどうすれば良いでしょうか(ハートを囲っているグレー部分を無くす)
これを押すと右側にいいねの数をカウントしていきたいと思っています。
補足
※stateはApp.jsで保持しており、
onClick = {() => this.props.SnsPost()}
の
SnsPost()
はApp.jsファイルで定義します。
また、Firebaseやreduxなどは使用しません。
ご存知の方がいらっしゃいましたら、ご教示いただけますと幸いです。
よろしくお願いいたします。
解決したコード
回答いただいたbuttonタグにonClick処理を書き込みました。
一度失敗した例
React
1<button onClick = {() => this.props.SnsPost()}><FavoriteBorderIcon /></button>
これだと変わらずグレーの四角に囲まれたままでした。
Buttonで解決しました。
React
1import { Button } from '@material-ui/core'; 2 3<Button onClick = {() => this.props.SnsPost()}><FavoriteBorderIcon /></Button> 4コード
左のゴミ箱マークはただのアイコンなので少し位置がずれていますが、マウスを当てたらグレーがかります。
マウスあてる前↓
マウスあてた時↓
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/09 05:33