Есть несколько вариантов, в зависимости от того, что вы пытаетесь сделать
1) Если эта функция не связана с экземпляром семени, сделайте его статическим.
class Seed extends React.Component {
static test() {
console.log('seed test');
}
// ...etc
}
Тогда вы можете назвать это так, как вы уже это называете.
2) Если его необходимо привязать к конкретному экземпляру семени, вы можете создать новый и затем вызвать его.Например:
const mySeed = new Seed();
mySeed.test();
Учитывая, что Seed является компонентом реагирования, очень вероятно, что не , что вы хотите сделать, поскольку вы должны позволить реагировать делать экземпляры компонентов и затем взаимодействовать сэто через реквизит
3) Используйте ссылки, чтобы позволить реакции дать вам ссылку на компонент.Я предполагаю, что вы используете реакцию 16 или выше и, таким образом, имеете доступ к React.createRef
constructor(props) {
super(props);
this.seedRef = React.createRef();
}
componentDidMount() {
this.seedRef.current.test();
}
render() {
return <Seed ref={this.seedRef}/>
}
Это лучше, но все еще сомнительно, что вы захотите взаимодействовать с компонентом, который это напрямую.
4) Используйте реквизит, не вызывайте его напрямую.Как именно это сделать, зависит от того, что вы пытаетесь сделать, но предположим, что вы хотите вызывать метод, только если какое-то условие выполняется.Тогда вы можете передать опору Семени, и семя вызывает сам метод.
// in App:
render() {
render <Seed shouldDoStuff={true} />
}
// In seed:
constructor(props) {
super(props);
if (props.shouldDoStuff) {
this.test();
}
}