import {Cascader,Input, Toast} from "antd-mobile"; import React, {useEffect, useMemo, useState} from "react"; import { Form, } from 'antd-mobile' import {getTaskByPid} from "../../utils"; const ParentTask = (props)=>{ const [valueToOptions, setValueToOptions] = useState([]) const [parentValue, setParentValue] = useState("") const [visible, setVisible] = useState(false) const {form} = props; const options = useMemo(() => { function generate(v) { const options = valueToOptions[v] if (options === null) { return undefined } if (options === undefined) { return Cascader.optionSkeleton } return options.map(option => ({ ...option, children: generate(option.value), })) } return generate('0') ?? [] }, [valueToOptions]) async function fetchOptionsForValue(v, level) { if (v in valueToOptions) return // if (level >= 3) { // setValueToOptions(prev => ({ // ...prev, // [v]: null, // })) // return // } const data = await getTaskByPid(v) console.log("await getTaskByPid(v)",data.content) const options = data.content.length === 0 ? null : data.content.map(task => ({ value: task.id, label: task.name, })) console.log("await getTaskByPid(v) options",options) setValueToOptions(prev => ({ ...prev, [v]: options, })) } useEffect(() => { fetchOptionsForValue('0', 0) }, []) return