Reactjs 包括对应日期的表格记录
我需要帮助在我的表视图中放置类的记录,但我现在不知道如何才能做到这一点 我需要做这个(这是一个用户体验原型——一周中的几天都是葡萄牙语:horario=时间,segunda=星期一,terça=星期二,quarta=星期三,quinta=星期四,sexta=星期五) 我需要取一个日期的值,检查是否是星期一、星期二或任何一个星期天,并将其放入当前列iqual UX prototype中,但我现在不知道a如何做到这一点 下面是我的代码 她是我的模拟数据Reactjs 包括对应日期的表格记录,reactjs,typescript,material-ui,Reactjs,Typescript,Material Ui,我需要帮助在我的表视图中放置类的记录,但我现在不知道如何才能做到这一点 我需要做这个(这是一个用户体验原型——一周中的几天都是葡萄牙语:horario=时间,segunda=星期一,terça=星期二,quarta=星期三,quinta=星期四,sexta=星期五) 我需要取一个日期的值,检查是否是星期一、星期二或任何一个星期天,并将其放入当前列iqual UX prototype中,但我现在不知道a如何做到这一点 下面是我的代码 她是我的模拟数据 "agenda-aulas"
"agenda-aulas":[
{
"Data": "2020-09-21",
"Horarios": [
{
"Periodo": "1",
"HorarioInicio": "2020-09-21T07:30:00-0300",
"HorarioTermino": "2020-09-21T08:20:00-0300",
"IdDisciplina": "396",
"DescricaoDisciplina": "Arte (Artes Visuais)",
"DescricaoReduzidaDisciplina": "Arte Vi.",
"DescricaoTurno": "Manhã",
"IdEstabelecimento": "43",
"DescricaoEstabelecimento": "Colégio Correio Lima",
"TipoSituacaoHorario": "Normal"
}
]
},
{
"Data": "2020-09-22",
"Horarios": [
{
"Periodo": "3",
"HorarioInicio": "2020-09-22T09:10:00-0300",
"HorarioTermino": "2020-09-22T10:00:00-0300",
"IdDisciplina": "3",
"DescricaoDisciplina": "História",
"DescricaoReduzidaDisciplina": "Hist",
"DescricaoTurno": "Manhã",
"IdEstabelecimento": "43",
"DescricaoEstabelecimento": "Colégio Correio Lima",
"TipoSituacaoHorario": "Normal"
}
]
},
我的界面
interface IHorarios {
Periodo: string;
HorarioInicio: string;
HorarioTermino: string;
IdDisciplina: string;
DescricaoDisciplina: string;
DescricaoReduzidaDisciplina: string;
DescricaoTurno: string;
IdEstabelecimento: string;
DescricaoEstabelecimento: string;
TipoSituacaoHorario: string;
}
export interface IAgendaAulas {
Data: string;
Horarios: IHorarios[];
}
我的服务
const getAgendaAulas = async (
dataAula: string
): Promise<IAgendaAulas | undefined> => {
try {
const { data } = await Api().get<IAgendaAulas[]>(
`/agenda-aulas?DataAula=${dataAula}`
);
if (data && data[0]) {
return data[0];
} else {
return undefined;
}
} catch (error) {
return undefined;
}
};
我的常数和使用效果与表格
export const TabelaHorariosAulas: React.FC<IAgendasAulasProps> = ({
agendaDeAulas,
dataAtualizada,
}) => {
const [aula, setAula] = useState<IAgendaAulas>();
useEffect(() => {
setIsLoading(true);
AgendaTurmaService.getAgendaAulas(dataAtualizada).then((data) => {
setIsLoading(false);
if (data) {
setAula(data);
} else {
setAula({Data:"", Horarios:[]});
}
});
}, [dataAtualizada]);
<Grid container>
<Grid item sm={12}>
<TableContainer component={Paper}>
<Table stickyHeader>
<TableHead>
<TableRow>
<TableCell>Horário</TableCell>
<TableCell>Segunda</TableCell>
<TableCell>Terça</TableCell>
<TableCell>Quarta</TableCell>
<TableCell>Quinta</TableCell>
<TableCell>Sexta</TableCell>
</TableRow>
</TableHead>
<TableBody>
{aula?.Horarios.map((horario, indexAulas) => (
<>
<TableRow key={indexAulas}>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
</TableRow>
</>
))}
</TableBody>
</Table>
</TableContainer>
</Grid>
</Grid>
}
export const TabelaHorariosAulas:React.FC=({
阿根达多拉斯,
dataAtualizada,
}) => {
const[aula,setAula]=useState();
useffect(()=>{
设置加载(真);
AgendaTurmaService.getAgendaAulas(dataAtualizada)。然后((data)=>{
设置加载(假);
如果(数据){
setAula(数据);
}否则{
setAula({数据:,Horarios:[]});
}
});
},[dataAtualizada]);
霍拉里奥
塞贡达
特里萨
夸塔
昆塔
塞克斯塔
{aula?.Horarios.map((horario,indexAulas)=>(
))}
}
这是我的解决方案,我非常确定horario.Periodo
代表一周中的某一天,我不明白第一列中的值代表什么,我只是把horario.HorarioInicio
放在这里
桌子
从“react”导入{FunctionComponent};
类型DayStablerRowProps={
索引:数字,
霍拉里奥:地图,
}
const DaysTableRow:FunctionComponent=({horario,indexAulas})=>{
const time=horario.get(“HorarioInicio”);
const day=horario.get(“Periodo”);
const data=horario.get(“descripa”);
返回(
{time}
{day==“1”?数据:“-”}
{day==“2”?数据:“-”}
{day==“3”?数据:“-”}
{day==“4”?数据:“-”}
{day==“5”?数据:“-”}
);
};
export const TabelaHorariosAulas:React.FC=({
阿根达多拉斯,
dataAtualizada,
}) => {
const[aula,setAula]=useState();
useffect(()=>{
设置加载(真);
AgendaTurmaService.getAgendaAulas(dataAtualizada)。然后((data)=>{
设置加载(假);
如果(数据){
setAula(数据);
}否则{
setAula({数据:,Horarios:[]});
}
});
},[dataAtualizada]);
霍拉里奥
塞贡达
特里萨
夸塔
昆塔
塞克斯塔
{aula?.Horarios.map((horario:map,indexAulas:number)=>(
))}
;
};
快乐的黑客!嘿,谢谢你的回答,这部分代码中还有一件事
constdiastablerow=({horario,indexAulas})
告诉我这个错误绑定元素'horario'隐式地有一个'any'类型。a如何解决这个问题?a try putconst DiasTableRow=({horario:string,indexAulas:number})
但不起作用horario是Map,我刚刚更新了答案以包含它。感谢您的帮助和时间,但在这部分代码中,{aula?.Horarios.Map((horario:Map,indexAulas:number)=>())我遇到了这个问题,我尝试了很多方法,但我不知道如何解决类型为“(horario:Map,indexAulas:number)=>JSX的参数。元素”不可分配给类型为“(value:IHorarios,index:number,array:IHorarios[])=>Element”的参数。参数“horario”和“value”的类型不兼容。类型“IHorarios”缺少类型“Map”中的以下属性:clear、delete、forEach、get和其他8个属性。如果我看到了整个代码(不仅仅是部分代码),也许我可以理解更多,但我相信您现在已经清楚了逻辑。
export const TabelaHorariosAulas: React.FC<IAgendasAulasProps> = ({
agendaDeAulas,
dataAtualizada,
}) => {
const [aula, setAula] = useState<IAgendaAulas>();
useEffect(() => {
setIsLoading(true);
AgendaTurmaService.getAgendaAulas(dataAtualizada).then((data) => {
setIsLoading(false);
if (data) {
setAula(data);
} else {
setAula({Data:"", Horarios:[]});
}
});
}, [dataAtualizada]);
<Grid container>
<Grid item sm={12}>
<TableContainer component={Paper}>
<Table stickyHeader>
<TableHead>
<TableRow>
<TableCell>Horário</TableCell>
<TableCell>Segunda</TableCell>
<TableCell>Terça</TableCell>
<TableCell>Quarta</TableCell>
<TableCell>Quinta</TableCell>
<TableCell>Sexta</TableCell>
</TableRow>
</TableHead>
<TableBody>
{aula?.Horarios.map((horario, indexAulas) => (
<>
<TableRow key={indexAulas}>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
<TableCell></TableCell>
</TableRow>
</>
))}
</TableBody>
</Table>
</TableContainer>
</Grid>
</Grid>
}
import { FunctionComponent } from "react";
type DaysTableRowProps = {
indexAulas: number,
horario: Map<string, string>,
}
const DaysTableRow: FunctionComponent<DaysTableRowProps> = ({ horario, indexAulas }) => {
const time = horario.get("HorarioInicio");
const day = horario.get("Periodo");
const data = horario.get("DescricaoDisciplina");
return (
<TableRow key={indexAulas}>
<TableCell>{time}</TableCell>
<TableCell>{day === "1" ? data : "-"}</TableCell>
<TableCell>{day === "2" ? data : "-"}</TableCell>
<TableCell>{day === "3" ? data : "-"}</TableCell>
<TableCell>{day === "4" ? data : "-"}</TableCell>
<TableCell>{day === "5" ? data : "-"}</TableCell>
</TableRow>
);
};
export const TabelaHorariosAulas: React.FC<IAgendasAulasProps> = ({
agendaDeAulas,
dataAtualizada,
}) => {
const [aula, setAula] = useState<IAgendaAulas>();
useEffect(() => {
setIsLoading(true);
AgendaTurmaService.getAgendaAulas(dataAtualizada).then((data) => {
setIsLoading(false);
if (data) {
setAula(data);
} else {
setAula({Data:"", Horarios:[]});
}
});
}, [dataAtualizada]);
<Grid container>
<Grid item sm={12}>
<TableContainer component={Paper}>
<Table stickyHeader>
<TableHead>
<TableRow>
<TableCell>Horário</TableCell>
<TableCell>Segunda</TableCell>
<TableCell>Terça</TableCell>
<TableCell>Quarta</TableCell>
<TableCell>Quinta</TableCell>
<TableCell>Sexta</TableCell>
</TableRow>
</TableHead>
<TableBody>
{aula?.Horarios.map((horario: Map<string, string>, indexAulas: number) => (
<DaysTableRow horario={horario} indexAulas={indexAulas} />
))}
</TableBody>
</Table>
</TableContainer>
</Grid>
</Grid>;
};