accounts-password
パッケージを使用して、現在のプロジェクトに小さな認証システムを実装しました。認証自体は適切に機能しています。Meteor.userId()は反応成分に反応しませんか?
私の見解では、ログインしたユーザーにのみ表示されるべきボタンやものがあります。私はMeteor.userId()
をチェックしてこれを働かせました。 null
の場合、ボタンは表示されません。
問題は次のとおりです。 私がログインしている(または出ている)とき、私のビューは再レンダリングしません。それは、単純に、トグルされるボタンを隠したり表示したりすることではありません。それらを表示または非表示にするには、常に独立したレンダリングが必要です。
Meteor-Documentationは、Meteor.userId()
が反応しますが、私のコンポーネントではそのように動作していません。
class SomeReactComponent extends React.Component {
constructor(props) {
super(props);
...
}
...
render() {
return (
<span>
<p>Text that should be displayed to anyone!</p>
{ Meteor.userId() ? (
<button id="btn">
This button is only available to logged in users
</button>
) : ""}
</span>
);
}
}
感謝を追加インストールします。 はちょうどタイプをインストールするには提案!私がこれをしなければならないのは、流星の反応性が反応反応性と等しくないからです。ですから、反応反応を起こすためには、 'createContainer()'を使って流星反応を包み込む必要があります。 – Rockettomatoo
はい、createContainerを使用してコンテナにコンポーネントをラップすることで、データがリアクティブになります。 – SSR