Реагируйте на Redux машинописью

0

Я учусь реагировать и набирать текст с помощью приставки. У меня есть дочерний компонент, как это:

import ...
interface MainTestProps {
   loadData: () => () => void,
   students: StudentsModel[],
   state: string,
   errorMessage?:string
}

interface MainTestState {
}

class MainTest extends React.Component<MainTestProps,MainTestState>{

constructor(props: MainTestProps, state: MainTestState){
    super(props,state);

}

.... rest of component
const mapStateToProps = (state:AppState, ownProps: MainTestProps)=> {
    return {
      students: [],
      state: 'INIT',
      errorMessage:''
    }
}
const mapDispatchToProps = (dispatch: any) => {
   return {
       loadData: () => dispatch(actionFetchStudents())
   }
}

export default connect(mapStateToProps,mapDispatchToProps) (MainTest);

Почему, если я вызываю этот компонент, я получаю сообщение об ошибке Тип "{}" пропускает следующие свойства типа "Readonly & MainTestProps>": loadData, Students, State TS (2739). Я имею в виду, я не хочу передавать свойства, я использую Redux !!! Есть ли ошибка в библиотеке редуксов машинописи или почему я должен передавать данные, или мое объявление mapStateToProps неверно, и я должен пропустить параметр ownProps.

Спасибо всем, Арнольд

Теги:
redux

1 ответ

0

Не могли бы вы показать, как вы вызываете этот компонент MainTest? Поскольку вы только добавляете loadData через Redux, остальные параметры students и state все же должны быть переданы компоненту в качестве реквизита. errorMessage является необязательным, поэтому перевозчик не жалуется на это.

Причина, по которой транспортер жалуется на loadData, наиболее вероятна потому, что тип, который вы MainTestProps в MainTestProps, не соответствует типу функции loadData. Я могу только догадываться, поскольку у меня нет фактической реализации actionFetchStudents, но кажется разумным, что тип loadData должен быть loadData:() => void; вместо loadData:() =>() => void; ,

Посмотрите, работает ли это, в противном случае предоставьте реализации actionFetchStudents и функцию, где вы вызываете MainTest.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню