Tag: redux

不变违规:无法在“连接(KnowStatus)”的上下文或道具中find“商店”。 将根组件包装在<Provider>中

我是新来的Redux当我服务器端渲染与REDX它扔了我这个错误 不变违规:无法在“连接(KnowStatus)”的上下文或道具中find“商店”。 将根组件包装在a中,或将“store”作为道具显式传递给“Connect(KnowStatus)”。 当我不使用serversiderendering它工作正常但是,当我使用它抛出一个像这样的错误… ServersiderenderExpress.js import express from 'express'; import bodyParser from 'body-parser'; import {Server} from 'http'; import React from 'react'; import {renderToString} from 'react-dom/server'; import {match, RouterContext} from 'react-router'; import routes from '../client/routes'; import Helmet from 'react-helmet'; import compression from 'compression'; import favicon from 'serve-favicon'; let app = express(); app.use(bodyParser.json()); app.use(compression()); app.use(favicon(__dirname + '/favicon/favicon.ico')) […]

React 15与React-redux不兼容

我正在尝试升级到我的项目上刚刚发布的react@15.0.0-rc.1,该项目也使用react-redux@^4.4.0软件包。 但是,当我尝试运行文档( https://facebook.github.io/react/blog/2016/03/07/react-v15-rc1.html )中build议的升级时, npm install –save react@15.0.0-rc.1 react-dom@15.0.0-rc.1 它出现了一个错误,因为版本不兼容: npm ERR! peerinvalid Peer react-addons-test-utils@0.14.7 wants react@^0.14.7 npm ERR! peerinvalid Peer react-redux@4.4.0 wants react@^0.14.0 有什么build议吗?

在Reduxtesting中,Nock不拦截API调用

我试图在一个REDX应用程序中testing一个API调用。 该代码非常符合redux文档的Async Action Creators部分中概述的模式: http://redux.js.org/docs/recipes/WritingTests.html 它的要点是,你使用减less模拟商店logging和断言任何触发的行动。 这是整个testing,用nock来模拟api调用: import React from 'React' import ReactDOM from 'react-dom' import expect from 'expect'; import expectJSX from 'expect-jsx'; import TestUtils from 'react-addons-test-utils' import configureMockStore from 'redux-mock-store' import thunk from 'redux-thunk' import nock from 'nock' expect.extend(expectJSX); import * as types from '../../constants/Actions' describe('Async Search Actions', () => { const thunkMiddleware = […]

在Node JS Server代码中的Webpack别名

我正在构build一个同构的React / React-Router / Redux / Webpack应用程序,我试图实现服务器端渲染。 我的目录看起来像: /client /actions /components /containers /server /server.js 在我的webpackconfiguration中,我为客户端中的所有文件夹设置了别名: var path_base = path.resolve(__dirname, '..'); const resolve = path.resolve; const base = function() { var args = [path_base]; args.push.apply(args, arguments); return resolve.apply(resolve,args); }; const resolve_alias = base.bind(null, 'src/client'); const aliases = [ 'actions', 'components', 'constants', 'containers', 'middleware', 'reducers', 'routes', 'store', […]

如何在React / redux中进行服务器端渲染?

我是新的反应/ redux我有点困惑与服务器端反应在/ reax,在互联网上看到一些例子,但当我尝试与外部服务器模拟API,服务器端渲染不起作用。 cat.js import React from 'react'; import {render} from 'react-dom'; import {connect} from 'react-redux'; import * as mockApi from '../Actions/mockActions'; class Cat extends React.Component{ componentWillMount(){ this.props.getMockApi(); } render(){ return( <div> Hello Dude {this.props.mock.data.map((data,i) => { return <li key={i}>{data.email}</li> })} </div> ) } } const mapStateToProps = (state) => { return { mock:state.mock } […]

与Sinon一起testingaxios调用,还有redux和Karma

你好在testing的redux文档中,他们有这个例子来testingAPI调用: import configureMockStore from 'redux-mock-store' import thunk from 'redux-thunk' import * as actions from '../../actions/counter' import * as types from '../../constants/ActionTypes' import nock from 'nock' const middlewares = [ thunk ] const mockStore = configureMockStore(middlewares) describe('async actions', () => { afterEach(() => { nock.cleanAll() }) it('creates FETCH_TODOS_SUCCESS when fetching todos has been done', (done) => […]

Redux React从API创build初始状态

如何从API中定义initialState ? 操作 import * as types from '../constants/ActionTypes' import jquery from 'jquery' import { apiRoot } from '../config.js' import Immutable from 'immutable' import Random from 'random-js' export function fetchLentItemList() { return function(dispatch) { dispatch(fetchLentItems()); jquery.get(`${apiRoot}/api/v1/something/`) .done((data) => { dispatch(fetchLentItems("success", Immutable.fromJS(data))) }) .fail(() => { dispatch(fetchLentItems("error")) }) } } export function fetchLentItems(status, locations = Immutable.List()) […]

在同构重做应用程序中设置cookie的位置?

我有3个关于redux和同构应用的一般问题: 在客户端和服务器之间共享“运行时”数据的最佳方式是什么? 例如,当用户login远程API时,我将会话对象存储在cookie中。 这样, 下一次客户端请求我的前端时,前端服务器可以读取cookie并使用前一个会话初始化redux存储。 这样做的缺点是客户端必须在启动时(例如在根组件的componentDidMount中)validation/无效会话。 我应该请求会话服务器端,而不是从cookie中读取? 我应该在哪里执行cookie存储的操作,在动作创build者还是减速器中? 我应该将cookie存储在处理用户会话的reducer中吗? 我应该在哪里执行redirect用户的操作(通过react-router)? 我的意思是当我的用户login成功后,我应该从哪里发送redirect操作(一旦解决login许诺,从loginActionCreator中,在别的地方?) 提前致谢。