"如何使MUI Autocomplete的onChange事件能够更新值"
P粉649990273
P粉649990273 2023-09-15 17:21:34
[JavaScript讨论组]

我正在从API中获取自动完成选项,它完美地获取到了,并且还显示了从API返回的已选择选项,但我面临的问题是,无论我尝试删除还是添加一个值(类别),它都不会删除或添加。

在线演示Codesandbox

PostInfo.jsx:

import SelectPostsCatsOptions from "../../components/autocomplete/SelectPostsCatsOptions";
import postInfo from "./postInfo.json";
export default function PostInfo() {
  const [categories, setCategories] = useState([]);
  const [selectedCategories, setSelectedCategories] = useState([]);

  useEffect(() => {
    const getPost = async () => {
      try {
        setCategories(postInfo[0].categories);
        setSelectedCategories(postInfo[0].categories);
      } catch (err) {}
    };
    getPost();
  });

  return (
   
    
<>

帖子类别:

setSelectedCategories(newSelectedCategories) } value={selectedCategories} />

已选择的类别:

); }

选择PostsCatsOptions:

import categories from "./postsCategories.json";

export default function SelectPostsCatsOptions({
  selectedCategories,
  setSelectedCategories,
  onChange,
  value
}) {
  return (
    
category.catName} options={categories} disableGutters isOptionEqualToValue={(option, value) => option.catName === value.catName } renderOption={(props, categories) => (
  • {categories.catName}
  • )} renderTags={(value, getTagProps) => value.map((option, index) => ( )) } renderInput={(params) => ( )} value={value} onChange={onChange} />
    ); }

    我不知道我在这里漏掉了什么,为什么我不能从自动完成中添加或删除一个标签!

    P粉649990273
    P粉649990273

    全部回复(1)
    P粉512526720

    更新你的useEffect依赖数组。 https://legacy.reactjs.org/docs/hooks-effect.html []意味着只在挂载时调用

    它在每次渲染时都会被调用

      useEffect(() => {
        const getPost = async () => {
          try {
            setCategories(postInfo[0].categories);
            setSelectedCategories(postInfo[0].categories);
          } catch (err) {}
        };
        getPost();
      }, []); //<--- 改变
    
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号