質問: this.state.datas.map((data) => { return( {data} ) }) //select要素として描画 return( データ:{options} ) } } ``` `data.json`を取得してきて、セレクトボックスとして表示するコンポーネントです。 これらのコードはwebpackの設定でバンドルされて`dist/`に出力されるようになっています。 その際気になったことがあります。 `componentWillMount()`内でsuperagentによって`data.json`を読み込む際のパスを、 `../json_data/data.json` `../../json_data/data.json` `../../../json_data/data.json` 上記いずれの場合も`data.json`を取得できて、動作しているということです。 相対パスで表現すると、`../../json_data/data.json`が正しいと思うのですが... es2015のモジュールの理解が乏しいからか、理由が分かりません。 なぜこのようなことが起こってしまっているのでしょうか? ご回答を頂けると非常に助かります_(._.)_
回答: すみません、Reactに詳しくはないので別角度ですが気になったので回答します。 ディレクトリを読み込んでいるデフォルトの階層が最上部なのではないでしょうか? 相対パスを指定しているということは、デフォルトで読み込んでいるディレクトリがありますよね。 それがrootで、rootより上の階層のディレクトリが存在しないとすると、 "../"を打っても上がる階層はありませんが、エラーにはならなかったハズです。 だから何回"../"としても、参照ディレクトリに変化がなく、 その後ろにくる"/jsondata"は正しいので移動します。 例えばとても簡易的ですが、 C: ∟sample というディレクトリ構造のPCがあったとして、 コマンドラインで"cd /"で最上位階層に移動した後、 "cd ../sample"や"cd ../../sample"、"cd ../../../sample"と打っても 問題なくsampleディレクトリに移動します。 見当違いでしたらすみません。