それは、クラスのインスタンスではなく、クラス自体に属するのstaticオブジェクト(このページの静的メソッドの詳細:MDN static)からメソッドを呼び出そうとしているからです。たぶん、test()
メソッドを静的に変更する必要があります。静的メソッドから非静的メソッドを呼び出すことはできませんが、逆の方法で静的メソッドをインスタンスから呼び出すことはできます。
さらに、<Text />
コンポーネントは、お客様の<Home />
コンポーネント内にレンダリングされていません。それはなぜ静的なオブジェクトです。そして、なぜあなたはthis
演算子によって<Home />
コンポーネントメソッドにアクセスできないのですか。 This
オペレータがコンポーネントではなくroute
オブジェクトを指しています。レンダリングが必要なコンポーネントを一覧表示するための設定です。
たとえば、還元アクションを使用してcomponent to component
通信を確立することができます。
私はあなたが達成しようとしているかどうかはわかりませんが、<Text />
コンポーネントを押しながら還元アクションをディスパッチできる<Text />
ではなく、独自のコンポーネントを使用することをお勧めします。たとえば:
...
import React, { Component } from 'react'
import { connect } from 'react-redux'
import onTextPress from './redux/actions'
...
class MyText extends Component {
render() {
return (
<Text onPress={() => this.props.onTextPress()} />
)
}
}
export default connect(null, { onTextPress })(MyText)
そしてもちろん変化に対応するために再来にご<Home />
コンポーネントを接続するには、Reduxの店で発生しました。
EDIT:あなたの新しい、カスタムコンポーネントを使用するようにstatic route
オブジェクトを変更する必要があなたの家のコンポーネントで :
...
import MyText from './components/MyText'
...
export default class Home extends React.Component {
static route = {
navigationBar: {
title: <MyText />
}
}
...
これは、あなたが任意のアクションを派遣することができます(私の例ではonTextPress
アクション)ナビゲーション内からバー。
ありがとうございました。残念ながら、_testの前に "静的"を置くと、私はまだ同じエラーが発生しているので、問題は解決しませんでした。私がしようとしているのは、ナビゲーションバーからアクションをディスパッチすることです。静的ルートから "this.dispatch"を実行することができないことに気づいたので、テストする_test関数を作成することができました。 – GGBB
ですので、新しいコンポーネントを作成し(上記のサンプルコードを見てください)、reduxに接続する必要があります。これにより、アクションをディスパッチできます。次に、 'navigationBar'の' Text'の代わりにこのコンポーネントを使用してください。 – mkatanski
ありがとう!意味あり – GGBB