質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
freeeAPI

freeeAPIは「会計freee」「人事労務freee」など、freeeが提供する各サービスに実装されている RESTful API です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

501閲覧

React axiosでのデータ追加(input要素の追加) IDの採番

shunta80

総合スコア96

freeeAPI

freeeAPIは「会計freee」「人事労務freee」など、freeeが提供する各サービスに実装されている RESTful API です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2022/04/09 04:18

前提

axiosを使用して下記サイトよりID 「1~10」までのデータを取得
https://jsonplaceholder.typicode.com/users

ID「11」からinput要素のデータを追加していく
新しいデータを追加する際に一緒にID「11」から採番したい

発生している問題・エラーメッセージ

追加データの2つ目以降のIDが同じ番号になってしまう
イメージ説明

該当のソースコード

function Qaa() { const[user2,setuser2]=useState([]) const [mail, setmail] = useState('') useEffect(()=>{ axios.get('https://jsonplaceholder.typicode.com/users') .then(function (re) { setuser2(re.data) }) .catch(function (error) { console.log(error); }) .finally(function () { }); },[]) const change2 = (e) => { setmail(e.target.value) } const create2 = () => { if (mail==='') { return; } axios.post('https://jsonplaceholder.typicode.com/users', { email: mail }) .then(res => { setuser2([...user2, res.data]) }) .catch(error => { console.log(error); }); } return( <div> <input onChange={change2} /> <button onClick={create2}>作成2</button> <ul> {user2.map((user,index)=>( <List id={user.id} email={user.email} name={user.name} color='red' index={index}/> ) )} </ul> </div> ) } export default Qaa;

List.tsx

import type {User} from './user' import type {FC} from 'react'; const List=pp=>{ return( <> <li style={{ color:pp.color }}> {pp.id}__{index} <br /> {pp.name} <br /> {pp.email} </li> </> ) } export default List;

試したこと

create2 の関数の中で
新規データのIDに+1ずつしていけば実装できるとかと思いました。

実際になにかアプリケーション作成を行う際
IDについてはデータベースの自動採番を使えば今回の質問のような機能はそもそも使用する場面がないとも感じましたが、今回のような場面はありますでしょうか。

React初心者のため教えていただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/04/09 09:30

いまいち何がやりたいのかよく分かりませんが、クライアント側で ID を決めると他のクライアントと衝突しますよね…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問