我正在尝试从Figma API中获取数据,但不幸的是,我无法在一个调用中做到这一点。我首先需要获取一个团队中所有项目的列表,然后为每个项目获取文件列表。
这是我要做的代码:
const [projects, setProjects] = useState([]); const [files, setFiles] = useState([]); useEffect(() => { const fetchProjects = async () => { const result = await axios( `https://api.figma.com/v1/teams/${teamId}/projects`, { headers: { 'Authorization': `Bearer ${token}` } }); setProjects(result.data.projects); }; fetchProjects(); }, []); useEffect(() => { projects.forEach(project => { const fetchFiles = async () => { const result = await axios( `https://api.figma.com/v1/projects/${project.id}/files`, { headers: { 'Authorization': `Bearer ${token}` } }); setFiles([ ...files, { projectName: project.name, files: result.data.files }]) }; fetchFiles(); }) }, [projects]);
我明确地仅将其projects
作为对第二个useEffect的依赖项,否则它将创建许多不同的渲染,并且我只想在项目列表中循环。
在我的Figma团队中,我有4个项目。每个都有1到5个文件。我希望状态文件具有4个对象,这些对象包含项目的名称及其包含的文件列表。
我今天遇到的问题是,首先,我有一些来自React的警告,我需要放置其他依赖项,其次,我的文件状态仅填充了最新的项目,而没有全部填充这四个项目。