リアクション-アレイからアイテムを削除
7843 ワード
シナリオの削除
()=>onRemove(id)のようなフォーマットは、新しい関数を宣言します.
説明するには、「ボタンを押しながらonRemove関数を呼び出しますが、idをパラメータとして使用します.」特定のid値を持つ配列を削除することを示す.
したがって、選択したid値の要素が削除されます!
関数が宣言されている場合は、必要な構成部品に関数情報を渡すことも忘れないでください.onRemoveを受信するコンポーネントは
※
うん.並べられた要素がすべて消えた.どうしてこんなことになったの?
したがって、レンダリングすると、関数が呼び出されて消えます.
ボタンをクリックしてonRemoveを呼び出す場合は、「関数を呼び出す」ではなく「関数」をインポートする必要があります.
UserList.js
構成部品の修正add.js
onRemoveアイテムを受け取ります.function UserList({users, onRemove}){
return (
<>
{
users.map(
user => (<User
user={user}
key={user.id}
onRemove={onRemove}/>)
)
}
</>
)
}
UserList
中User
素子もonRemoveを受ける.function User({user, onRemove}){
const {username, email,id} = user
return(
<div>
<b>{username}</b> <span>({email})</span>
<button onClick={() => onRemove(id)}>삭제</button>
</div>
)
}
※onClickはもともとそうではなかったのでしょうか?()=>onRemove(id)のようなフォーマットは、新しい関数を宣言します.
説明するには、「ボタンを押しながらonRemove関数を呼び出しますが、idをパラメータとして使用します.」特定のid値を持つ配列を削除することを示す.
App.js
のonRemove関数宣言const onRemove = id => {
setUsers(users.filter(user => user.id !==id) );
}
ステータスをsetusersに変換filterを使用して、この条件のTRUE値を配列内の要素にのみ追加します.選択したid値を配列内の要素が持つidと比較し、一致しないものを配列に追加します.同じid値を持つ配列は追加しません.したがって、選択したid値の要素が削除されます!
関数が宣言されている場合は、必要な構成部品に関数情報を渡すことも忘れないでください.onRemoveを受信するコンポーネントは
UserList
であるため、onRemove={onRemove}
を追加する必要がある.return (
<div style={style}>
<CreateUser username={username} email={email} onChange={onChange} onCreate={onCreate}/>
<UserList users = {users} onRemove={onRemove}/>
</div>
);
実行してみましょう.※
User
構成部品にonRemove関数を再作成しない場合、{onRemove(id)}
に変更するとどうなりますか?うん.並べられた要素がすべて消えた.どうしてこんなことになったの?
{onRemove(id)}
関数のインポートではなく呼び出し関数を表します.したがって、レンダリングすると、関数が呼び出されて消えます.
ボタンをクリックしてonRemoveを呼び出す場合は、「関数を呼び出す」ではなく「関数」をインポートする必要があります.
() => onRemove(id)
呼び出し関数に相当する関数.Reference
この問題について(リアクション-アレイからアイテムを削除), 我々は、より多くの情報をここで見つけました https://velog.io/@jhs000123/리액트-배열에-항목-제거하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol