2017-05-03 9 views
1

私のプロジェクトでReactJSを使用しています。私はwindow.location.hrefを使って、私の現在のURLにアクセスしたいと思います。 window.location.hrefを使用すると、windowが定義されていないというエラーが表示されます。ウィンドウが定義されていません

// --- REACT + CUSTOM-TAGS --- 
const SampleApp = ({value}) => { 
    // --- CUSTOM-SCRIPTS --- 
    addMeta([ 
     {type: 'meta', content: {content: 'something'}}, 
     {type: 'link', content: {rel: 'http://link'}}, 
    ]); 

    //Append the value from the URL 
    const prId = "12512" //We can make it dynamic 
    const url = window.location.href;//window,location.href; 
    const id = url.substring(url.lastIndexOf('/') + 1); 
    const output = id.replace(/[a-zA-Z=]/g, ''); 

    return (
     <div> 
      <h1>Hello {value}</h1> 
      <hr /> 
      <h2>{url} took from prId</h2> 
      <hr /> 
      <h2><a className="redirect" href={'//www.check.com/prId/' + output} target="_blank">Click Here</a> 
      </h2> 
     </div> 
    ); 
}; 
+0

チェックこのhttp://stackoverflow.com/questions/35374257/error-window-not-defined-in-node-jsは同様の問題 – Shota

答えて

0

場所は、Reactで定義されていないため、小道にあります。

window.location.hrefの代わりにthis.props.location.pathnameとしてください。

あなたがこの小道具を記録すると、さらに詳しい情報が得られます。

+0

TypeError例外のように思えます/ users/scrpatlolla/Desktop/Test/react-amp-template/node_modules/react-dom/lib/ReactCompositeComponent.js:306:16 at measureLifeCyclePerf(/Users/scrpatlolla/Desktop/Test/react-amp-template/node_modules/react-dom/lib/ReactCompositeComponent.js:75:12) –

+0

エラーを参照してください。私がthis.props.location.pathnameを使用する場合。 –

+0

純粋なコンポーネントを持っている完全なファイルhttps://github.com/scrpatlolla/react-amp-template/blob/master/examples/src/demo.js –

0

次に、あなたのコンポーネント import 'jsdom-global/register'; の上でそれをインポートし、このライブラリ npm install --save-dev --save-exact jsdom jsdom-global をインストールするには、それがお役に立てば幸いです。 (SampleAppで未定義 のプロパティ「小道具」を読み込めません:

関連する問題