如何在 MUI Autocomplete 选择州后动态渲染对应地点组件-js教程

本文解决使用 mui `autocomplete` 组件时,状态已正确选中但关联内容无法渲染的问题,核心在于修复 `renderselectedstatewithmap` 函数未返回 jsx 的逻辑缺陷,并提供可复用、带键值和类型安全的渲染方案。

在 React 中,组件函数必须显式返回 JSX 才能被渲染到 DOM;而原代码中 renderSelectedStateWithMap 内部虽调用了 map(),却未将结果返回,导致函数实际返回 undefined,因此

始终不出现。

以下是修正后的完整实现(含关键优化):

import { Autocomplete, TextField } from '@mui/material';
import { useState } from 'react';
import styles from './styles.module.css';

type Location = {
  name: string;
  address: string;
  lat: number;
  lng: number;
};

type StateData = {
  name: string;
  locations: Location[];
};

const statesString = [
  'Acre', 'Alagoas', 'Amazonas', 'Brasília Distrito Federal',
  'Ceará', 'Espírito Santo', 'Goiás', 'Maranhão', 'Mato Grosso',
  'Mato Grosso do Sul', 'Minas Gerais', 'Pará', 'Paraíba', 'Paraná',
  'Pernambuco', 'Piauí', 'Rio de Janeiro', 'Rio Grande do Norte',
  'Rio Grande do Sul', 'Roraima', 'Santa Catarina', 'São Paulo',
  'Sergipe', 'Tocantins',
];

const locations: StateData[] = [
  {
    name: 'Acre',
    locations: [
      {
        name: 'Aeroporto de Rio Branco',
        address: 'Avenida Plácido de Castro – Vila Aeroporto – Rio Branco CEP: 69923-900 AC Telefone: 68-3211-1000',
        lat: -9.98417,
        lng: -67.88333,
      },
    ],
  },
  // 可扩展其他州数据(如:{ name: 'São Paulo', locations: [...] })
];

export default function SearchBar() {
  const [selectedState, setSelectedState] = useState(null);

  const renderSelectedStateWithMap = (stateName: string | null) => {
    if (!stateName) return null;

    const state = locations.find((s) => s.name === stateName);
    if (!state || state.locations.length === 0) return null;

    return (
      

? {state.name} 的地点

{state.locations.map((location, idx) => (
{location.name}

{location.address}

坐标: ({location.lat.toFixed(5)}, {location.lng.toFixed(5)})
))}
); }; return (
setSelectedState(newValue)} renderInput={(params) => ( )} sx={{ width: 300 }} /> {renderSelectedStateWithMap(selectedState)}
); }

✅ 关键改进说明:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 如何在 MUI Autocomplete 选择州后动态渲染对应地点组件-js教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1394+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4040242+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1394+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4040243+
  • 本周更新: 0+
  • 最后更新: 2026-03-16