Итак, я сталкиваюсь с проблемой и не знаю точно, как ее решить. После прочтения в ES6 делаю c. Я думаю, что это правильно настроено, но когда я вызываю <UserInstance>.getID()
, я получаю сообщение об ошибке:
TypeError: currentUser.getID не является функцией .
Я знаю, что это может быть дубликатом, но на другие вопросы, которые я видел, отвечают на подобные вопросы, ни один из них не позволил мне решить эту проблему.
Вот мой класс определение:
import { v4String } from "uuid/interfaces";
class User {
private id!: v4String;
constructor() {
this.getID = this.getID.bind(this);
this.setID = this.setID.bind(this);
}
getID = () => this.id;
setID = (id: v4String) => this.id = id;
}
export default User;
Я почти уверен, что настроил класс, но есть ли что-то, чего мне не хватает в функции стрелки? Кажется, не имеет значения, настроил ли я его с помощью синтаксиса функции стрелки или настроил его как
getID() {
return this.id
}
Вот код, который его вызывает, currentUser предоставляется поставщиком контекста и внедряется в реквизит с использованием компонента высшего порядка:
componentDidMount() {
const currentUser: User = this.props.currentUser;
this.setState({ loading: true });
const currentUserID = currentUser.getID(); <---- FAILS HERE
const currentUserIDString = currentUserID.toString();
}
}