RNを初めて使用していて、ログに記録されたユーザー状態に基づいてリスト内のアイテムを表示/非表示しようとしています。React native:ログに記録されていないユーザーの状態に基づいてListViewからアイテムを削除します。
ログアウト時にアイテムを非表示にするという目標は達成されましたが、ログイン部分にはまだ問題があります。
私は反応性ネイティブエレメント、特にSideMenuコンポーネントを使用しています。
私は以下のように2つの配列を作成しました。ここで
は私の配列である:
レンダリングでvar listLogged = [
{
name : 'Page 1'
},
{
name : 'Page 2'
},
{
name : 'Logout'
}];
var listNotLogged = [
{
name : 'Page 1'
},
{
name : 'Page 2'
}];
:
if (this.state.LoggedIn) {
<List>
{
listLogged.map((item, j) => (
<ListItem
key={j}
title={item.name}
/>
))
}
</List>
} else {
<List>
{
listNotLogged.map((item, j) => (
<ListItem
key={j}
title={item.name}
/>
))
}
</List>
しかし残念ながら、私はどこでどのように状態を設定するかわからない、主な問題は、Menuコンポーネントがすでにあるということですログイン前にレンダリングされます。
いくつかのヘルプに希望!あなたの<List />
コンポーネントがReact Component
の内部にある場合は、状態を変更するためにthis.setState({ LoggedIn: true })
を使用することができ、かつrender()
機能が自動的に再実行されます事前
残念ながら私はこの問題を抱えています: 'array.push()'は関数ではありません。 – Mark
@マーク私はコードを更新しました... 'reduce()'関数の最後に空の配列を渡していませんでした。 – chandlervdw
ありがとうございました! – Mark