“IAulasAdicionais[]”类型的参数不可分配给“string”类型的参数

时间:2021-01-25 18:25:56

标签: reactjs typescript material-ui

每个人我都有一个问题要解决到我的应用程序中,但我不知道如何做到这一点我希望其他人帮助我,我的问题是我的代码中的一个错误,在我的代码下面有一些打印问题,

模拟数据:

"AulasAdicionais": [
    {
      "Periodo": "1",
      "HorarioInicio": "2021-01-19T07:30:00-0300",
      "HorarioTermino": "2021-01-19T08:30:00-0300",
      "IdDisciplina": "396",
      "DescricaoDisciplina": "Matemática",
      "DescricaoReduzidaDisciplina": "Mat",
      "DescricaoTurno": "Manhã",
      "IdEstabelecimento": "43",
      "DescricaoEstabelecimento": "Colégio Correio Lima",
      "TipoSituacaoHorario": "Normal"
    }
  ]

服务

export interface IAulasAdicionais {
  Periodo: string;
  HorarioInicio: string;
  HorarioTermino: string;
  IdDisciplina: string;
  DescricaoDisciplina: string;
  DescricaoReduzidaDisciplina: string;
  DescricaoTurno: string;
  IdEstabelecimento: string;
  DescricaoEstabelecimento: string;
  TipoSituacaoHorario: string;
}

export interface IAgendaAulas {  
  AulasAdicionais: IAulasAdicionais[];

}

const getAgendaAulas = async (dataAula: string ) : Promise<IAgendaAulas[] | undefined> => {
  try {
    const { data } = await Api().get<IAgendaAulas[]>(
      `/agenda-aulas?DataAula=${dataAula}`
    );
    if (data) {
      return data;
    } else {
      return undefined;
    }
  } catch (error) {
    return undefined;
  }
};

多伦多证券交易所:

interface IAgendasAulasProps {
  aulasAdicionais: IAulasAdicionais[];
}

export const AulasAdicionaisRecuperacao: React.FC<IAgendasAulasProps> = ({
  aulasAdicionais,
}) => {
  const classes = useStyles();
  const [aulaAdicionais, setAulasAdicionais] = useState<
    IAulasAdicionais[]
  >();

  useEffect(() => {
    AgendaTurmaService.getAgendaAulas(aulasAdicionais "O problema está aqui" ).then((data) => {
      if (data) {
        setAulasAdicionais(data "e aqui");
      } else {
        setAulasAdicionais([]);
      }
    });
  }, [aulasAdicionais]);

{aulaAdicionais?.map((horario, horarioIndex) => (
        <>
          <Grid container spacing={2} key={horarioIndex}>
            <Grid item lg={2}>
              <Box margin={1}>
                <Paper className={classes.root}>
                  <Box marginTop={2} marginLeft={1}>
                    <ClassIcon color="primary" style={{ fontSize: 90 }} />
                    <Box display="flex" marginTop={-10} marginLeft={12}>
                      <Typography>{horario?.DescricaoDisciplina}</Typography>
                    </Box>
                  </Box>
                </Paper>
              </Box>
            </Grid>
          </Grid>
        </>
      ))}

这是我的问题的打印件,我尝试了很多东西但没有奏效,如果解决了我的问题,我在网上找不到任何东西! Erro 1

Erro 2

1 个答案:

答案 0 :(得分:0)

注意将正确的类型设置为 useState。当您设置 aulaAdicionais 时,您使用的是 IAgendaAulas 而不是 IAulasAdicionais

尝试这些更改:

const getAgendaAulas = async (dataAula: string ) : Promise<IAgendaAulas | undefined> => {

setAulasAdicionais(data.AulasAdicionais);