2017-11-26 13 views
1

私は個人的な打ち上げページを作ってReactJSを学ぼうとしています。先ほどの愚かな説明。状態にある他のオブジェクトに基づいて状態を設定しますか?

は私のメインのapp.jsファイル内では、私はそうのようないくつかの情報とアプリの状態を初期化してきました:

class App extends Component { 
    constructor(props){ 
    super(props); 
    this.state = { 
     links: { 
     listA: ["CodeCademy","Udemy","StackOverflow","This is list A"], 
     listB: ["ADSR","Youtube","Reddit", "This is list B"], 
     listC: ["Overwatch", "R6S", "CSGO", "This is list C"], 
     listD: ["Soundcloud", "Pandora", "Spotify", "This is list D"] 
     }, 
     linkbar: { 
     links1: "coding", 
     links2: "chillin", 
     links3: "vidya", 
     links4: "music" 
     }, 
     //activeList : something 
    }; //etc 

でもあります場合は、私の人生のために、私は把握することはできません既存のプロパティからプロパティを外す方法。この場合、this.state.links配列の1つを参照するactiveListペアを参照してリストを交換したいと思います。しかし、配列を参照しようとすると、activeListが定義されていないというエラーが発生します。

ここに何か不足していますか?適切にこれを行う方法でこれにアプローチする別の方法はありますか?状態内でactiveListを定義することは可能ですか?これはconstを介して外部で行う必要がありますか?どんな指導も気に入っています。乾杯!

+0

エラーで「未定義」と指定してください。状態は未定義か、またはactiveListは未定義ですか? – sidag95

+0

申し訳ありませんが、私がlinks.listA、this.state.links.listAなどとして定義しようとすると、activeListは未定義です。これがこれを参照する適切な方法であるかどうかは不明です。 – IkeDoud

+0

申し訳ありませんが、私はactiveListをどのように参照しようとしているのか理解できません。あなたはいくつかのコードを追加していただけますか?ありがとう – sidag95

答えて

2

状態内部の複数のレベルと対話する唯一の方法、状態はその後、それらを渡す外で、あなたのオブジェクトを操作することである。私はあなたのコードで表示されるものと

、私は状態で遊んでいることはよく分かりませんこれはすべて最高のアイデアです。しかしここに例があります。

myHandler() { 
    var levelA = {...this.state.levelA}; 
    levelA.levelB = ["hello"]; 
    // so something 
    this.setState(levelA); 
} 
+0

@IkeDoud、私はこれを私の電話から書いた、私は間違いを犯さなかったことを願っているが、それはアイデアだ – Sbe88

+0

それは私が必要としたものだ。 componentWillMountでハンドラを切り替えると、私はinitのために完全にセットアップされました。乾杯! – IkeDoud

+0

驚くばかりですが、私は過去にこれについてもかなり調べてきました! – Sbe88

関連する問題