为了账号安全,请及时绑定邮箱和手机立即绑定

正确显示选择中的值

正确显示选择中的值

森栏 2022-06-09 16:40:37
我有一个应用程序,我使用select标签在表中添加值。通过这个选择,我可以只选择一个值并将其添加到表中。选择输入的一些代码:const searchPlayer = selectedItems => {    selectedItems = selectedItems.map(name => name.toLowerCase());    let arrayOfMatchedObjects = team.filter(object => {      return selectedItems.some(selectedItem =>        JSON.stringify(object)          .toString()          .toLowerCase()          .includes(selectedItem)      );    });    return arrayOfMatchedObjects;  };   问题是它不能正常工作,因为当我选择一个名称但不保存它,然后我改变主意并选择另一个名称时,表格中将添加两个名称,但我可以不明白为什么,因为这样我只需单击一次按钮即可添加 2 个名称。谁知道如何解决这个问题?应用链接:https ://codesandbox.io/s/serene-hamilton-go4m3
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

从您当前的代码中,您可以concate在 中进行选择useEffect(),这会导致将多选项目传递到表中。


删除该concate方法将适合您的需求。


更新

替换这个


const addPlayer = () => {

  setnewPlayer(searchPlayer(savedPlayer));

};


useEffect(() => {

  setSavedPlayer(

    Array.from(new Set(savedPlayer.concat(selectedItems)).values())

  );

}, [selectedItems]);


const addPlayer = () => {

  const data = Array.from(new Set(savedPlayer.concat(selectedItems)).values());

  setnewPlayer(searchPlayer(data));

  setSavedPlayer(data);

};

//img1.sycdn.imooc.com//62a1b22a0001beb204000130.jpg

查看完整回答
反对 回复 2022-06-09
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信