Почему я не могу вызвать this.state в моем редукторном редукторе? - PullRequest
0 голосов
/ 24 октября 2019

Я сделал редуктор, который выбирает администраторов, и я хочу, чтобы он отображал определенных администраторов, когда я вызываю его в своем редукторе, но я получаю неопределенный. ,Я попытался включить все соответствующие папки:

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;

columnsReducer.js

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
  }
}

index.js

import { FETCH_ADMINS } from "./types"

/**
* starts loader for setting admin
*/

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

types.js

export const FETCH_ADMINS = 'fetch_admins'

Когда я console.log(action.admins) внутрипереключить регистр FETCH_ADMINS в файле columnsReducer.js, я могу видеть всю необходимую информацию администратора, есть ли способ сделать состояние глобальным в файле columnsReducer.js, чтобы я мог его прочитать?

Любая помощьоценили!

1 Ответ

0 голосов
/ 24 октября 2019

используйте mapStateToProps в методе connect. как показано ниже

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

// вы можете использовать this.props.admins внутри вашего компонента

Ссылка MapStateToProps

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...