我正在开发一个名为CadastrologisticenteBiopsia的React组件,用于注册患者和活检。该组件有一个功能,当用户在文本输入字段中输入时,它会动态搜索专业人士。虽然搜索功能正常工作(状态会根据获取的数据和日志正确更新),但不会显示建议。
下面是我的组件的相关部分:
import React, { useState, useEffect } from 'react'
import axios from 'axios';
import './formulario_design.css'
function CadastroPacienteBiopsia({ onFormSubmit }) {
// ... (state and other functions)
const [profissionais, setProfissionais] = useState([]);
const [textoBusca, setTextoBusca] = useState('');
useEffect(() => {
const buscarProfissionais = async () => {
if (textoBusca.length > 2) {
try {
const resposta = await axios.get(`http://localhost:5000/api/profissionais/nome/${textoBusca}`);
setProfissionais(resposta.data);
} catch (erro) {
console.error('Erro ao buscar profissionais', erro);
}
}
};
const timerId = setTimeout(buscarProfissionais, 500); // Debounce
return () => clearTimeout(timerId);
}, [textoBusca]);
// ... (other parts of the component)
return (
<div className="formulario-cadastro">
{/* Other form fields */}
<input
type="text"
name="profissional_nome"
placeholder="Digite o nome de um profissional existente"
value={dadosPaciente.profissional_nome}
onChange={(e) => {
handleInputChange(e);
setTextoBusca(e.target.value);
}}
list="profissionais-list"
/>
<datalist id="profissionais-list">
{profissionais.map((profissional, index) => (
<option key={index} value={profissional.nome} />
))}
</datalist>
{/* Other form fields */}
</div>
);
}
export default CadastroPacienteBiopsia;
字符串
在profissionais-list字段中输入时,状态profissionais按预期更新,并且控制台日志确认获取的数据。但是,与此输入字段绑定的数据列表(id为“profissionais-list”的数据列表)不会显示基于获取的数据的建议。
如何让用户在“Digite o nome de um profissional existente”字段中键入时显示建议?
为了解决我的React组件CadastrologisticenteBiopsia的一个问题,我实现了一个功能,当用户在文本字段中输入时,可以在列表中动态显示专业建议。尽管通过控制台日志确认了成功的数据获取和状态更新,但通过datalist标签链接的列表,并没有显示这些建议。我使用useState来管理状态,使用useEffect来触发专业搜索,并增加了一个去抖动功能以提高效率。核心挑战仍然是:则该数据不反映动态加载的数据。
1条答案
按热度按时间lqfhib0f1#
datalist
是你做的自定义组件吗?如果是
请分享代码
如果没有
尝试使用
ul
和li
元素列出项目,如下所示:字符串