以下のコードでコールバックでアクションを送信できません。コードはアクションを送信しません。しかし、onClickなどのハンドラにConnectedプロパティをアタッチすると、それが実行されます。これらのハンドラを使用しないでコードを動作させるにはどうすればよいですか?Reduxに反応する:子コンポーネントに関数を渡し、子でハンドラなしで呼び出す
(注:この例では、npmのMQTT.jsライブラリを使用しています)。
MQTTを使用してソケットを介して接続メッセージを受信するたびに、正常に接続されたときにフロントエンドに通知するためにストアを更新します。しかし、私はコンポーネントをコンテナではなくコンポーネントにしておく必要があります。
親:
return (
<MQTT
Connected={() => {this.props.sendAction('MQTT_CONNECTED')}}
>
)
子供:
const MQTT = ({Connected}) => {
var client = mqtt.connect(mqttBroker, mqttConnectOptions);
client.on('connect', function() {
{Connected}
}
return <div>...</div>;
}
sendAction:
export function sendAction(action) {
return {
type: action
}
}
元の質問を編集したり、回答を使用して更新を提供したり、実際の回答がそれを受け入れてそれをマークした場合は、元の質問を編集してください。 – hardillb
詳しい情報を追加するには、質問の編集リンクを使用してください。回答を投稿するボタンは、質問に対する完全な回答のためだけに使用してください。 - [レビューから](レビュー/低品質の投稿/ 16448063) –
@hardillbこれは入力ミスのように思われるので、投票を閉じることもできます。 –