3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【React学習】ランダム画像表示画面を作成

Posted at

こちらの記事を参考に、ランダム画像表示画面をつくりました。

作ったもの

画像取得ボタンを押すと、ランダムで画像が表示されます。サイズは800pxで固定しました。
image.png

ソースコードは以下です。ほかのサイトから参考にした点も多いです。

        function ImageButton() {

            const [image, setImage] = React.useState(null);

            const onClick = checked => {
                fetch('https://picsum.photos/800', {
                    method: 'GET',
                    mode: "cors"
                })
                    .then(res => res.blob())
                    .then(blob => {
                        setImage([URL.createObjectURL(blob)]);
                        console.log(URL.createObjectURL(blob));
                    })
                    .then(data => {
                        // .thenは成功した時の処理を示す場合に使う。
                        console.log('Success');
                    })
                    .catch((error) => {
                        // .catchは失敗の時の処理を示す場合に使う。
                        console.error('Error:', error);
                    });


            };

            return (
                <div className="panel">
                    <button onClick={onClick}>
                        画像取得
                    </button>
                    <img src={image} width="800px" />
                </div>
            );
        }

        function App() {
            return (
                <div className="container is-fluid">
                    <ImageButton />
                </div>
            );
        }

        const root = document.getElementById('root');
        ReactDOM.render(<App />, root);

詰まった点

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?