Javascript 对道具的Redux连接状态作出反应
我正在尝试为react应用程序设置应用商店,我无法将应用商店连接到组件。我看了官方的例子,但看不出哪里出了错Javascript 对道具的Redux连接状态作出反应,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在尝试为react应用程序设置应用商店,我无法将应用商店连接到组件。我看了官方的例子,但看不出哪里出了错 无法读取未定义的属性“app” 在app.js中,它说状态是未定义的,我的理解是提供者将此传递下去。我不确定我是否忽略了一些简单的事情,但我现在很困惑 编辑:我现在已经添加了所有涉及的文件 root.js import React, { Component } from 'react'; import { Provider } from 'react-redux'; import con
无法读取未定义的属性“app”
在app.js
中,它说状态
是未定义的,我的理解是提供者
将此传递下去。我不确定我是否忽略了一些简单的事情,但我现在很困惑
编辑:我现在已经添加了所有涉及的文件
root.js
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from '../configureStore';
import App from './app';
const store = configureStore();
export default class Root extends Component {
render() {
return(
<Provider store={store}>
<App />
</Provider>
)
}
}
import React, { Component, PropTypes } from 'react';
import {render} from 'react-dom';
import { connect } from 'react-redux';
import { fetchFixtures } from '../actions';
const mapStateToProps = (state) => {
return {
fixtures: state.app.fixtures
}
}
class App extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
const { dispatch, selectedSubreddit } = this.props;
}
render() {
return(
<div></div>
)
}
}
export default connect(mapStateToProps)(App);
import {createStore} from 'redux';
import Reducer from './reducers';
let initialState = {
app: {
teams: [],
fixtures: [],
manifesto: []
}
}
export default function configureStore(initialState) {
return createStore(
Reducer,
initialState
)
}
export function fetchFixtures(url) {
return fetch(url)
.then(res => res.json())
.then(json => dispatch(recieveFixtures(json)))
.catch((err) => {
console.log(err);
});
}
function recieveFixtures(json) {
return {
type: ADD_FIXTURES,
fixtures: json.fixtures.map(fixture => fixture)
}
}
function euroSweep(state, action) {
switch (action.type) {
case 'ADD_FIXTURES':
let newState = Object.assign({}, state);
return newState;
default:
return state;
}
}
export default euroSweep;
import React, {Component} from 'react';
import {render} from 'react-dom';
import Root from './containers/root';
render(
<Root />, document.querySelector('.app')
)
configureStore.js
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from '../configureStore';
import App from './app';
const store = configureStore();
export default class Root extends Component {
render() {
return(
<Provider store={store}>
<App />
</Provider>
)
}
}
import React, { Component, PropTypes } from 'react';
import {render} from 'react-dom';
import { connect } from 'react-redux';
import { fetchFixtures } from '../actions';
const mapStateToProps = (state) => {
return {
fixtures: state.app.fixtures
}
}
class App extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
const { dispatch, selectedSubreddit } = this.props;
}
render() {
return(
<div></div>
)
}
}
export default connect(mapStateToProps)(App);
import {createStore} from 'redux';
import Reducer from './reducers';
let initialState = {
app: {
teams: [],
fixtures: [],
manifesto: []
}
}
export default function configureStore(initialState) {
return createStore(
Reducer,
initialState
)
}
export function fetchFixtures(url) {
return fetch(url)
.then(res => res.json())
.then(json => dispatch(recieveFixtures(json)))
.catch((err) => {
console.log(err);
});
}
function recieveFixtures(json) {
return {
type: ADD_FIXTURES,
fixtures: json.fixtures.map(fixture => fixture)
}
}
function euroSweep(state, action) {
switch (action.type) {
case 'ADD_FIXTURES':
let newState = Object.assign({}, state);
return newState;
default:
return state;
}
}
export default euroSweep;
import React, {Component} from 'react';
import {render} from 'react-dom';
import Root from './containers/root';
render(
<Root />, document.querySelector('.app')
)
actions.js
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from '../configureStore';
import App from './app';
const store = configureStore();
export default class Root extends Component {
render() {
return(
<Provider store={store}>
<App />
</Provider>
)
}
}
import React, { Component, PropTypes } from 'react';
import {render} from 'react-dom';
import { connect } from 'react-redux';
import { fetchFixtures } from '../actions';
const mapStateToProps = (state) => {
return {
fixtures: state.app.fixtures
}
}
class App extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
const { dispatch, selectedSubreddit } = this.props;
}
render() {
return(
<div></div>
)
}
}
export default connect(mapStateToProps)(App);
import {createStore} from 'redux';
import Reducer from './reducers';
let initialState = {
app: {
teams: [],
fixtures: [],
manifesto: []
}
}
export default function configureStore(initialState) {
return createStore(
Reducer,
initialState
)
}
export function fetchFixtures(url) {
return fetch(url)
.then(res => res.json())
.then(json => dispatch(recieveFixtures(json)))
.catch((err) => {
console.log(err);
});
}
function recieveFixtures(json) {
return {
type: ADD_FIXTURES,
fixtures: json.fixtures.map(fixture => fixture)
}
}
function euroSweep(state, action) {
switch (action.type) {
case 'ADD_FIXTURES':
let newState = Object.assign({}, state);
return newState;
default:
return state;
}
}
export default euroSweep;
import React, {Component} from 'react';
import {render} from 'react-dom';
import Root from './containers/root';
render(
<Root />, document.querySelector('.app')
)
reducers.js
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from '../configureStore';
import App from './app';
const store = configureStore();
export default class Root extends Component {
render() {
return(
<Provider store={store}>
<App />
</Provider>
)
}
}
import React, { Component, PropTypes } from 'react';
import {render} from 'react-dom';
import { connect } from 'react-redux';
import { fetchFixtures } from '../actions';
const mapStateToProps = (state) => {
return {
fixtures: state.app.fixtures
}
}
class App extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
const { dispatch, selectedSubreddit } = this.props;
}
render() {
return(
<div></div>
)
}
}
export default connect(mapStateToProps)(App);
import {createStore} from 'redux';
import Reducer from './reducers';
let initialState = {
app: {
teams: [],
fixtures: [],
manifesto: []
}
}
export default function configureStore(initialState) {
return createStore(
Reducer,
initialState
)
}
export function fetchFixtures(url) {
return fetch(url)
.then(res => res.json())
.then(json => dispatch(recieveFixtures(json)))
.catch((err) => {
console.log(err);
});
}
function recieveFixtures(json) {
return {
type: ADD_FIXTURES,
fixtures: json.fixtures.map(fixture => fixture)
}
}
function euroSweep(state, action) {
switch (action.type) {
case 'ADD_FIXTURES':
let newState = Object.assign({}, state);
return newState;
default:
return state;
}
}
export default euroSweep;
import React, {Component} from 'react';
import {render} from 'react-dom';
import Root from './containers/root';
render(
<Root />, document.querySelector('.app')
)
index.js
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from '../configureStore';
import App from './app';
const store = configureStore();
export default class Root extends Component {
render() {
return(
<Provider store={store}>
<App />
</Provider>
)
}
}
import React, { Component, PropTypes } from 'react';
import {render} from 'react-dom';
import { connect } from 'react-redux';
import { fetchFixtures } from '../actions';
const mapStateToProps = (state) => {
return {
fixtures: state.app.fixtures
}
}
class App extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
const { dispatch, selectedSubreddit } = this.props;
}
render() {
return(
<div></div>
)
}
}
export default connect(mapStateToProps)(App);
import {createStore} from 'redux';
import Reducer from './reducers';
let initialState = {
app: {
teams: [],
fixtures: [],
manifesto: []
}
}
export default function configureStore(initialState) {
return createStore(
Reducer,
initialState
)
}
export function fetchFixtures(url) {
return fetch(url)
.then(res => res.json())
.then(json => dispatch(recieveFixtures(json)))
.catch((err) => {
console.log(err);
});
}
function recieveFixtures(json) {
return {
type: ADD_FIXTURES,
fixtures: json.fixtures.map(fixture => fixture)
}
}
function euroSweep(state, action) {
switch (action.type) {
case 'ADD_FIXTURES':
let newState = Object.assign({}, state);
return newState;
default:
return state;
}
}
export default euroSweep;
import React, {Component} from 'react';
import {render} from 'react-dom';
import Root from './containers/root';
render(
<Root />, document.querySelector('.app')
)
import React,{Component}来自'React';
从'react dom'导入{render};
从“./containers/Root”导入根目录;
渲染(
,document.querySelector(“.app”)
)
哪里是状态
未定义?在mapstatetops
?@davintroon是,将状态传递给mapstatetops
时,状态未定义configureStore
看起来像什么?reducer正在生成的夹具
?看起来您正在定义一个未考虑的应用程序
密钥插入状态。尝试:fixtures:state.app.fixtures
。看不到其他明显错误的内容。您的初始状态
似乎未定义,因为您正在调用没有参数的配置存储
。这将覆盖上部范围中的局部变量。指定默认参数或删除configureStore
的参数。