重定向(反应路由器dom),给出了期望的赋值或函数调用,而是看到了一个表达式no-unused-expressions

时间:2019-02-21 10:10:08

标签: javascript reactjs react-router-dom

我是新的Reactjs,我正在使用fetch进行api调用。我想使用其他页面上的api数据来重定向页面,因为我正在使用以下代码

import React, { Component } from 'react';
import OwlCarousel from 'react-owl-carousel';
import 'owl.carousel/dist/assets/owl.carousel.css';
import 'owl.carousel/dist/assets/owl.theme.default.css';
import { Link,Redirect  } from 'react-router-dom';

fetchCatList(){
        let catID = "5c2f74e8a4d846591b2b1a41";
        // fetch("http://sfsdfsdfsdf/api/listing",{
        // method: 'POST',
        // body: JSON.stringify({
     //        category_id: catID,       
     //      }),
        // headers:{
        //  'Content-Type':'application/json',
        // },
        // })
     //      .then(res => res.json())
     //      .then(json => this.setState({catlist:json.data}));  

          fetch("http://sdfsdfsdf/api/listing", {
              method: "post",
              headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
              },

              //make sure to serialize your JSON body
              body: JSON.stringify({
                category_id: catID,             
              })
            })
            .then(function(res){ return res.json(); })
            .then(function(response){ 
               //do something awesome that makes the world a better place              
               console.log(response);
               <Redirect to={{
                    pathname: '/listing_page',
                    state: { listData: response }
                 }}/>
            });


    }

我正在使用Redirect中的react-router-dom,但是在调用api之后出现错误

  

期望了一个赋值或函数调用,而是看到了一个表达式   没有未使用的表达式

     

搜索关键字以详细了解每个错误。

2 个答案:

答案 0 :(得分:0)

在这里,他们提到这是eslint错误,而不是路由器的错误。

引用:https://github.com/ReactTraining/react-router/issues/4718

答案 1 :(得分:0)

要解决您的问题,您需要使用带有返回功能的重定向。

render () {
  if(this.state.toListing) {
    return <Redirect push to="/listing_page" />
  }
  return (
    ...
  )
}