Проблема синтаксического анализа с 2 различными экспортными настройками по умолчанию

#reactjs #pagination

#реагирует на #пагинация

Вопрос:

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

Что я делаю не так и как лучше всего обойти это решение? Имейте в виду, что я уже импортировал свое состояние использования и эффект использования в «реагировать».

 const url = 'https://jsonplaceholder.typicode/posts';  export default function ProductApp() {  const [products, setProducts] = useState([]);  const [error, setError] = useState('');   useEffect(() =gt; {  fetch(url)  .then((response) =gt; {  if (response.ok) return response.json();  throw new Error('opps, something did not work right');  })  .then ((products) =gt; setProducts(products))  .catch((error) =gt; setError(error.message));  }, []);   if (error) return lt;h1gt;{error}lt;/h1gt; };  export default class App extends Component {  constructor(props) {  super(props);    this.state = {  loggedInStatus: "NOT_LOGGED_IN",  user: {}  };    this.handleSignIn = this.handleSignIn.bind(this);  this.handleUnsuccesfulLogin = this.handleUnsuccesfulLogin.bind(this);  this.handleSignOut = this.handleSignOut.bind(this);  }    handleSignIn() {  this.setState({  loggedInStatus: "LOGGED_IN"  });  }    handleUnsuccesfulLogin() {  this.setState ({  loggedInStatus: "NOT_LOGGED_IN"  });  }   handleSignOut() {  this.setState ({  loggedInStatus: "NOT_LOGGED_IN"  });  }    checkLoginStatus() {  return axios  .get("http://localhost:3001/logged_in",   { withCredentials: true })  .then(response =gt; {   const loggedIn = response.data.logged_in;  const loggedInStatus = this.state.loggedInStatus;   if (loggedIn amp;amp; loggedInStatus === "LOGGED_IN") {  return loggedIn;  } else if (loggedIn amp;amp; loggedInStatus === "NOT_LOGGED_IN") {  this.setState ({  loggedInStatus: "LOGGED_IN"  });  } else if (!loggedIn amp;amp; loggedInStatus === "LOGGED_IN") {  this.setState({  loggedInStatus: "NOT_LOGGED_IN"  });  }  })  .catch(error =gt; {  console.log("Error", error);  });  }    componentDidMount() {  this.checkLoginStatus();  }    handleLogout() {  this.setState({  loggedInStatus: "NOT_LOGGED_IN",  user: {}  });  }    handleLogin(data) {  this.setState({  loggedInStatus: "LOGGED_IN",  user: data.user  });  }   render() {  return (  lt;Routergt;  lt;Home /gt;  lt;Switchgt;  lt;Route  exact   path={'/'}  render={props =gt; (  lt;Main  {...props}  handleSignIn={this.handleSignIn}  handleSignOut={this.handleSignOut}  loggedInStatus={this.state.loggedInStatus}  /gt;  )}  /gt;  lt;Route path='/products' component={Products}/gt;  lt;Route path='/contactus' component={ContactUs}/gt;  lt;Route path='/signup' component={SignUp}/gt;  lt;Route path='/signin' component={Login}/gt;  lt;Route  exact  path={"/signin"}  render={props =gt; (  lt;LogOut  {...props}  loggedInStatus={this.state.loggedInStatus}  /gt;  )}  /gt;  {/* lt;Route path='/profile' component={Profile}/gt; */}  lt;/Switchgt;  lt;/Routergt;   );  } }  

Ответ №1:

Вы не можете выполнить 2 или более экспорта по умолчанию в одном файле.

Что вы можете сделать, так это иметь default export и отдыхать как named exports .


Экспорт по умолчанию экспортируется как

 export default function(){}  

и импортируется как

 import App from "./App.js"  

Именованные экспортные товары экспортируются как

 export function App(){}  

и импортируется как

 import {App} from "./App.js"