2017-05-10 5 views
1

反応型クッキーv^2の実装に問題があります。私はテストのためにwebpack-dev-serverを使います。
はここconloseログです:クッキー値が未定義です(反応クッキー2.0.6)

警告:失敗したコンテキストタイプ:withCookies(App)に必要とされるコンテキストcookiesがマークされているが、その値はundefinedです。

import React, { Component } from 'react'; 
import { CookiesProvider, withCookies, Cookies} from 'react-cookie' 
import {Route, Switch, BrowserRouter} from 'react-router-dom'; 

//import RequireAuth from './RequireAuth'; 
import NotFoundPage from './NotFoundPage'; 
import LandingPage from './LandindPage'; 
import WorkSpace from './WorkSpace'; 
import ActivationPage from './ActivationPage'; 

class App extends Component { 
    render() { 
    return (
     <CookiesProvider> 
     <BrowserRouter> 
      <Switch> 
      <Route exact={true} path="/" component={LandingPage}/> 
      <Route path="/workspace" component={WorkSpace}/> 
      <Route exact path="/activation" component={ActivationPage}/> 
      <Route path="*" component={NotFoundPage}/> 
      </Switch> 
     </BrowserRouter> 
     </CookiesProvider> 
    ); 
    } 
} 

export default withCookies(App); 

/index.js:withCookies(APP)プロバイダで

/App.jsxで

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { createStore, applyMiddleware } from 'redux'; 
import reduxThunk from 'redux-thunk'; 
import reducers from './reducers'; 
import { Provider } from 'react-redux'; 

import App from './components/App'; 

const createStoreWithMiddleware = applyMiddleware(reduxThunk)(createStore); 
const store = createStoreWithMiddleware(reducers); 

ReactDOM.render(
    <Provider store = {store}> 
    <App/> 
    </Provider> 
    , 
    document.getElementById('root')); 
+0

だから、問題を解決するために、私はユニバーサルクッキーとに反応-クッキーlibに変更しましたできます。しかし、なぜそれが定義されていないのかという疑問が残っていますか?サーバー側で定義する必要がありますか? (ただし、サーバーがないreact-cookie githubのREADMEに例があります) – svnvav

答えて

1

それが表示されるreact-cookie NPMで以前に存在する官能パッケージがuniversal-cookieに移動しました。 universal-cookie repositoryから関連する例は以下のようになります。

import Cookies from 'universal-cookie'; 
const cookies = new Cookies(); 
cookies.set('myCat', 'Pacman', { path: '/' }); 
console.log(cookies.get('myCat')); // Pacman 

Source(orginal答えの作者へのすべてのクレジット)

関連する問題