„So aktivieren Sie das onChange-Ereignis von MUI Autocomplete, um den Wert zu aktualisieren'
P粉649990273
P粉649990273 2023-09-15 17:21:34
0
1
618

Ich erhalte die Optionen für die automatische Vervollständigung von der API, und sie funktioniert perfekt und zeigt auch die von der API zurückgegebene ausgewählte Option an. Das Problem, mit dem ich konfrontiert bin, ist jedoch, dass dies nicht der Fall ist, egal, ob ich versuche, einen Wert (eine Kategorie) zu entfernen oder hinzuzufügen. Es werden keine Löschungen oder Ergänzungen vorgenommen.

Online-Demo-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} />

已选择的类别:

); }

Wählen Sie BeiträgeKatzenOptionen:

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} />
    ); }

    Ich weiß nicht, was mir hier fehlt, warum ich bei der automatischen Vervollständigung kein Tag hinzufügen oder daraus entfernen kann!

    P粉649990273
    P粉649990273

    Antworte allen (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(); }, []); //<--- 改变
      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!