Reactjs 为什么可以';我不能在我的redux reducer中称之为.state吗?

Reactjs 为什么可以';我不能在我的redux reducer中称之为.state吗?,reactjs,redux,Reactjs,Redux,我制作了一个获取管理员的reducer,当我在reducer中调用它时,我想让它显示某些管理员,但我没有定义 我对redux还很陌生,所以为我的错误道歉。 我试图包括所有相关文件夹: App.js import React, { Component } from 'react'; import { connect } from 'react-redux'; import * as actions from '../store/actions'; class App extends Compon

我制作了一个获取管理员的reducer,当我在reducer中调用它时,我想让它显示某些管理员,但我没有定义

我对redux还很陌生,所以为我的错误道歉。 我试图包括所有相关文件夹:

App.js

import React, { Component } from 'react';
import { connect } from 'react-redux';
import * as actions from '../store/actions';

class App extends Component {

  async componentDidMount() {

    fetch(constants.adminUrl + '/admins/data', {
      method: 'GET'
    }).then((res) => {
      return res.json()
    }).then(async (res) => {
      this.props.setAdminsInColumns(res.admins)
    }).catch((error) => {
      toast.error(error.message)
    })
  }


  render() {
    return (
        {/* SOME CODE */}
    );
  }
}

let app = connect(null, actions)(App);
export default app;
import { FETCH_ADMINS } from '../actions/types'
import { Link } from 'react-router-dom'
import constants from '../../static/global/index'
import React from 'react';
import { toast } from 'react-toastify'

const initialState = {
  admins: [],
{
      Header: "Responsible",
      accessor: "responsibleAdmin",
      style: { textAlign: "center" },
//  Place where I want to fetch certain admins and get undefined
      Cell: props => <span>{props.value && this.state.admins.name ? this.state.admins.find(admin => admin.id === props.value).name : props.value}</span>
    }
}

export default function (state = initialState, action) {
  switch (action.type) {
    case FETCH_ADMINS:
      return { ...state, admins: action.admins}
    default:
      return state
  }
}

import { FETCH_ADMINS } from "./types"

/**
* starts loader for setting admin
*/

export const setAdminsInColumns = (admins) => async dispatch => {
 dispatch({ type: FETCH_ADMINS, admins })
}
columnsReducer.js

import React, { Component } from 'react';
import { connect } from 'react-redux';
import * as actions from '../store/actions';

class App extends Component {

  async componentDidMount() {

    fetch(constants.adminUrl + '/admins/data', {
      method: 'GET'
    }).then((res) => {
      return res.json()
    }).then(async (res) => {
      this.props.setAdminsInColumns(res.admins)
    }).catch((error) => {
      toast.error(error.message)
    })
  }


  render() {
    return (
        {/* SOME CODE */}
    );
  }
}

let app = connect(null, actions)(App);
export default app;
import { FETCH_ADMINS } from '../actions/types'
import { Link } from 'react-router-dom'
import constants from '../../static/global/index'
import React from 'react';
import { toast } from 'react-toastify'

const initialState = {
  admins: [],
{
      Header: "Responsible",
      accessor: "responsibleAdmin",
      style: { textAlign: "center" },
//  Place where I want to fetch certain admins and get undefined
      Cell: props => <span>{props.value && this.state.admins.name ? this.state.admins.find(admin => admin.id === props.value).name : props.value}</span>
    }
}

export default function (state = initialState, action) {
  switch (action.type) {
    case FETCH_ADMINS:
      return { ...state, admins: action.admins}
    default:
      return state
  }
}

import { FETCH_ADMINS } from "./types"

/**
* starts loader for setting admin
*/

export const setAdminsInColumns = (admins) => async dispatch => {
 dispatch({ type: FETCH_ADMINS, admins })
}
types.js

import React, { Component } from 'react';
import { connect } from 'react-redux';
import * as actions from '../store/actions';

class App extends Component {

  async componentDidMount() {

    fetch(constants.adminUrl + '/admins/data', {
      method: 'GET'
    }).then((res) => {
      return res.json()
    }).then(async (res) => {
      this.props.setAdminsInColumns(res.admins)
    }).catch((error) => {
      toast.error(error.message)
    })
  }


  render() {
    return (
        {/* SOME CODE */}
    );
  }
}

let app = connect(null, actions)(App);
export default app;
import { FETCH_ADMINS } from '../actions/types'
import { Link } from 'react-router-dom'
import constants from '../../static/global/index'
import React from 'react';
import { toast } from 'react-toastify'

const initialState = {
  admins: [],
{
      Header: "Responsible",
      accessor: "responsibleAdmin",
      style: { textAlign: "center" },
//  Place where I want to fetch certain admins and get undefined
      Cell: props => <span>{props.value && this.state.admins.name ? this.state.admins.find(admin => admin.id === props.value).name : props.value}</span>
    }
}

export default function (state = initialState, action) {
  switch (action.type) {
    case FETCH_ADMINS:
      return { ...state, admins: action.admins}
    default:
      return state
  }
}

import { FETCH_ADMINS } from "./types"

/**
* starts loader for setting admin
*/

export const setAdminsInColumns = (admins) => async dispatch => {
 dispatch({ type: FETCH_ADMINS, admins })
}
export const FETCH\u ADMINS='FETCH\u ADMINS'

当我
console.log(action.admins)
在开关盒内获取columnsReducer.js文件中的\u admins时,我可以看到我想要的所有管理信息,有没有办法使columnsReducer.js文件中的状态全局化,以便我可以读取它


感谢您的帮助

在connect方法中使用MapStateTops。如下

let mapStateToProps = (state)=>{
 return {
    admins :[yourcolumnsReducer].admins
 }
}
let app = connect(mapStateToProps, actions)(App);

//您可以在组件中使用this.props.admins


@satishkumar您没有将
mapstatetops
作为
connect
的第一个参数传递。