I'm trying to access a method's objet (here greet()
method) throught a mobx array, but I'm stuck with :
TypeError: person.greet is not a function
Person class
I have a Person class, with greet
method :
export class Person {
public id: number = Date.now();
public firstName!: string;
public lastName!: string;
public greet() : string {
return "Hello!";
}
};
Store
My store look like :
import { persist } from "mobx-persist";
import { observable, computed, action } from "mobx";
import { Person } from "../models/Person";
export class PersonStore {
@persist('list')
@observable
personList: Person[] = [];
@computed get entries(): Person[] {
return this.personList.slice();
};
};
In the component
In my component, I pass the list like that :
const PeoplePage_: React.FunctionComponent<{ personStore: PersonStore }> = ({ personStore }) => {
return (
<PeoplePage
personList={personStore.entries} />
);
};
export default inject("personStore")(observer(PeoplePage_));
And then in my PeoplePage
component, when I'm doing something like :
personList[0].greet()
I'm getting the error.