如何从 react.js 中的状态中删除部分数据
how can I remove part of data from state in react.js
我创建一些数据并将其添加到我的 selecetFile2 状态/然后我想通过任何事件删除该 selecetFile2 状态的某些部分 - 只是功能指南。
const [selectedFile2, setSelectedFile2] = useState([]); //my state for data
const [isFilePicked2, setIsFilePicked2] = useState(false); //just controll for page
此函数用于控制数据
const changeHandler2 = (event) => {
setSelectedFile2([...selectedFile2,event.target.files[0]]);
setIsFilePicked(true);}
const multi_img = ()=>{ //It's for input dialog box
document.getElementById("multi_img").click();}
这是我的主要代码
<input type="file" onChange={changeHandler2} title="ali ali" id="multi_img"
name="img" accept="image/*" style={{display:'none'}} />
<div><BsFillPlusSquareFill onClick={multi_img} /> //input control by this
{
isFilePicked2 &&
selectedFile2.map(item => <img key={v4()} src={URL.createObjectURL(item)} />)
//this my Item I want to delete for example by click
//I just need function
}
给你
<input
type="file"
onChange={changeHandler2}
title="ali ali"
id="multi_img"
name="img"
accept="image/*"
style={{ display: "none" }}
/>
<div>
<BsFillPlusSquareFill onClick={multi_img} /> //input control by this
{
isFilePicked2 &&
selectedFile2.map((item) => (
<img key={v4()} src={URL.createObjectURL(item)} onClick={ () => {
setSelectedFile2(selectedFile2.filter(i => i !== item))
}} />
))
//this my Item I want to delete for example by click
//I just need function
}
</div>
通过使用useState,您不能直接更新或修改状态。每当您想修改或更新状态时,您都必须使用 set[nameofstate] 来完成。在你的情况下。
每当您想更新 selectedFile2
时,都必须将 seletedFile2
的新值传递给 setSelectedFile2(newValueForSelectedFile2)
。
有关更多信息和示例,请访问 documenation
我创建一些数据并将其添加到我的 selecetFile2 状态/然后我想通过任何事件删除该 selecetFile2 状态的某些部分 - 只是功能指南。
const [selectedFile2, setSelectedFile2] = useState([]); //my state for data
const [isFilePicked2, setIsFilePicked2] = useState(false); //just controll for page
此函数用于控制数据
const changeHandler2 = (event) => {
setSelectedFile2([...selectedFile2,event.target.files[0]]);
setIsFilePicked(true);}
const multi_img = ()=>{ //It's for input dialog box
document.getElementById("multi_img").click();}
这是我的主要代码
<input type="file" onChange={changeHandler2} title="ali ali" id="multi_img"
name="img" accept="image/*" style={{display:'none'}} />
<div><BsFillPlusSquareFill onClick={multi_img} /> //input control by this
{
isFilePicked2 &&
selectedFile2.map(item => <img key={v4()} src={URL.createObjectURL(item)} />)
//this my Item I want to delete for example by click
//I just need function
}
给你
<input
type="file"
onChange={changeHandler2}
title="ali ali"
id="multi_img"
name="img"
accept="image/*"
style={{ display: "none" }}
/>
<div>
<BsFillPlusSquareFill onClick={multi_img} /> //input control by this
{
isFilePicked2 &&
selectedFile2.map((item) => (
<img key={v4()} src={URL.createObjectURL(item)} onClick={ () => {
setSelectedFile2(selectedFile2.filter(i => i !== item))
}} />
))
//this my Item I want to delete for example by click
//I just need function
}
</div>
通过使用useState,您不能直接更新或修改状态。每当您想修改或更新状态时,您都必须使用 set[nameofstate] 来完成。在你的情况下。
每当您想更新 selectedFile2
时,都必须将 seletedFile2
的新值传递给 setSelectedFile2(newValueForSelectedFile2)
。
有关更多信息和示例,请访问 documenation