ошибка при использовании пакета datalisting response-redux-datatable - PullRequest
0 голосов
/ 19 января 2019

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

Ваш метод рендеринга должен иметь оператор return реагировать / требуют вынести-возвращение

Как это исправить?

файл service.js

import React, { Component } from 'react';
import DataTable from 'react-redux-datatable';
import 'react-redux-datatable/dist/styles.css';
import { connect } from 'react-redux';
import { withRouter } from 'react-router-dom';
import {Link} from 'react-router-dom';
import {getServices} from '../../actions/servicesActions';
import Spinner from '../Spinner';

class Services extends Component{
    componentDidMount(){
    const api= this.props.getServices();
} 
render(){

    const services=this.props.services;

    var tableSettings = {
    tableID: 'AdvancedFeaturesTable',
    wrapperType: 'section',
    displayTitle: 'Requests Table',
    keyField: '_id',
    defaultSort: ['_id', 'desc'],
    minWidth: 880,
    useLocalStorage: true,
        tableColumns: [
            {
              title: '_id',
              key: '_id',
              width: 90,
            },
            {
              title: 'Name',
              key: 'name',
              width: 90,
            },
            {
              title: 'Description',
              key: 'description',
              width: 90,
            }, 

            {
              title: 'Status',
              key: 'status',
              width: 164,
            },
            {
              title: 'Subscription',
              key: 'subscription',
              width: 90,
            },
        ],
    };

    var DataTable = () => (
        <DataTable
          tableSettings={tableSettings}
          apiLocation={services}
        />
    )
}
};

const mapStateToProps = state => {    
    return {
        service: state.services.service
    };
};
export default connect(
    mapStateToProps,
    {
        getServices
    }
)(Services);

getservices.js

export  const getServices=() =>dispatch => {
dispatch(setLoading());
axios.get('/api/admin/services')

.then(res =>

    dispatch({ 
        type:GET_SERVICES,
        payload:res.data
    })
)

  .catch(err =>
  dispatch({
    type: GET_SERVICES,
    payload: {}
  })
)
}

ошибка отображения

 Line 199:  Your render method should have return statement  react/require-render-return

реферальная ссылка https://www.npmjs.com/package/react-redux-datatable

1 Ответ

0 голосов
/ 19 января 2019

Ошибка понятна. Компонент в реакции должен возвращать элемент jsx или набор элементов jsx.

В вашем компоненте Services метод рендеринга ничего не возвращает

Похоже, вы хотите, чтобы компонент Services отображал DataTable, поэтому замените приведенный ниже код в компоненте Services, отображающем

render(){
  const tableSettings = {
      tableID: 'AdvancedFeaturesTable',
      wrapperType: 'section',
      displayTitle: 'Requests Table',
      keyField: '_id',
      defaultSort: ['_id', 'desc'],
      minWidth: 880,
     useLocalStorage: true,
     tableColumns: [
        {
          title: '_id',
          key: '_id',
          width: 90,
        },
        {
          title: 'Name',
          key: 'name',
          width: 90,
        },
        {
          title: 'Description',
          key: 'description',
          width: 90,
        }, 

        {
          title: 'Status',
          key: 'status',
          width: 164,
        },
        {
          title: 'Subscription',
          key: 'subscription',
          width: 90,
        },
    ],
};

return(
    <div><DataTable
      tableSettings={tableSettings}
      apiLocation={this.props.services}
    />
  </div>
   )}

Это решит вашу проблему.

...