如何在新页面中显示JSON结果?

hato15

我有一个简单的应用程序,可从本地json文件中检索数据,但我想完成的工作是能够单击列表中的任何电影,并在另一页中显示其描述。我尝试使用react-router,但无法弄清楚。

这是代码:

App.js

import React, { Component } from "react";
import MovieList from "./data/data.json";

export default class Movie extends Component {
  render() {
    return (
      <div>
        <h1>Movies:</h1>
        {MovieList.map((movie, i) => {
          return (
            <div className="movie" key={i}>
              <li>{movie.title}</li>
            </div>
          );
        })}
      </div>
    );
  }
}

data.json

[
  {
    "id": 1,
    "title": "Movie 1",
    "description": "This is the description for Movie 1"
  },
  {
    "id": 2,
    "title": "Movie 2",
    "description": "This is the description for Movie 2"
  },
  {
    "id": 3,
    "title": "Movie 3",
    "description": "This is the description for Movie 3"
  }
]
密码猴子

您可以使用React Router做到这一点,实际上非常简单。您需要将路由器设置为使用URL中的电影ID路由到正确的页面。因此,总体思路是这样的:

https://example.net/ -> shows all moves
https://example.net/:id -> shows info for the specific movie ID 

您将有2个主要组件:Movies呈现所有电影的列表,并按MovieID呈现特定电影的描述。

这是完成此任务的代码以及一个沙箱链接:https : //codesandbox.io/s/brave-dirac-8sdmj?file=/ src/ App.js

import React, { Component } from "react";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";

const MovieList = [
  {
    id: 1,
    title: "Movie 1",
    description: "This is the description for Movie 1"
  },
  {
    id: 2,
    title: "Movie 2",
    description: "This is the description for Movie 2"
  },
  {
    id: 3,
    title: "Movie 3",
    description: "This is the description for Movie 3"
  }
];

class Movies extends Component {
  render() {
    return (
      <div>
        <h1>Movies:</h1>
        {MovieList.map((movie, i) => {
          return (
            <div className="movie" key={i}>
              <li>
                <a href={"/" + movie.id}>{movie.title}</a>
              </li>
            </div>
          );
        })}
      </div>
    );
  }
}

const Movie = (props) => {
  const {id} = props.match.params;
  const movie = MovieList.find(item => item.id === parseInt(id))
  return <div>Movie info: {movie.description}</div>;
};

export default class extends Component {
  render() {
    return (
      <Router>
        <Switch>
          <Route exact path="/">
            <Movies />
          </Route>
          <Route
            exact
            path="/:id"
            render={(props) => <Movie {...props} isAuthed={true} />}
          />
        </Switch>
      </Router>
    );
  }
}

请记住,这是如何完成您要完成的工作的一般性想法。有很多优雅的方法可以编写此代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在新页面中显示JS / HTML调查的结果?

来自分类Dev

防止PHP在新页面中显示结果

来自分类Dev

在新页面中显示 $_POST 后获得的结果

来自分类Dev

使用 JQuery 在新页面中显示 Firebase 查询结果

来自分类Dev

如何在新页面上显示AJAX响应

来自分类Dev

如何在Wordpress中从模板页面创建新页面?

来自分类Dev

如何在xamarin.forms的新页面内显示存储在firebase RealtimeDataBase中的数据?

来自分类Dev

显示警报后如何在php中刷新页面

来自分类Dev

如何在Mechanize中刷新页面?

来自分类Dev

如何在iText中获取新页面

来自分类Dev

如何在CKAN中添加新页面?

来自分类Dev

如何在prestashop管理面板中创建新页面?

来自分类Dev

如何在Wordpress插件中创建新页面?

来自分类Dev

如何在Inno设置中刷新页面

来自分类Dev

如何在Pupeteer中单击按钮以处理新页面?

来自分类Dev

如何在php中刷新页面

来自分类Dev

如何在WordPress中访问新页面?

来自分类Dev

如何在Wordpress插件中创建新页面?

来自分类Dev

如何在Mechanize中刷新页面?

来自分类Dev

如何在Visual Studio中刷新页面?

来自分类Dev

如何在MVC中刷新页面

来自分类Dev

如何在ActiveReports中创建新页面

来自分类Dev

如何在 WKWebview 中制作按钮刷新页面

来自分类Dev

如何在不刷新页面的情况下在提交时从侧边栏中的mysql获取搜索结果

来自分类Dev

如何在不刷新页面的情况下正确显示存储在外部模型中的数据?

来自分类Dev

为什么我的代码不显示在线数据库的结果?如何使ListView中的项目可点击到显示结果的新页面?

来自分类Dev

scrollTop()仅在刷新页面后显示结果

来自分类Dev

如何使用w / Lunr.js在Jekyll中打开包含搜索结果的新页面?

来自分类Dev

jQuery FullCalendar如何在ajax调用后显示数据而不刷新页面

Related 相关文章

  1. 1

    如何在新页面中显示JS / HTML调查的结果?

  2. 2

    防止PHP在新页面中显示结果

  3. 3

    在新页面中显示 $_POST 后获得的结果

  4. 4

    使用 JQuery 在新页面中显示 Firebase 查询结果

  5. 5

    如何在新页面上显示AJAX响应

  6. 6

    如何在Wordpress中从模板页面创建新页面?

  7. 7

    如何在xamarin.forms的新页面内显示存储在firebase RealtimeDataBase中的数据?

  8. 8

    显示警报后如何在php中刷新页面

  9. 9

    如何在Mechanize中刷新页面?

  10. 10

    如何在iText中获取新页面

  11. 11

    如何在CKAN中添加新页面?

  12. 12

    如何在prestashop管理面板中创建新页面?

  13. 13

    如何在Wordpress插件中创建新页面?

  14. 14

    如何在Inno设置中刷新页面

  15. 15

    如何在Pupeteer中单击按钮以处理新页面?

  16. 16

    如何在php中刷新页面

  17. 17

    如何在WordPress中访问新页面?

  18. 18

    如何在Wordpress插件中创建新页面?

  19. 19

    如何在Mechanize中刷新页面?

  20. 20

    如何在Visual Studio中刷新页面?

  21. 21

    如何在MVC中刷新页面

  22. 22

    如何在ActiveReports中创建新页面

  23. 23

    如何在 WKWebview 中制作按钮刷新页面

  24. 24

    如何在不刷新页面的情况下在提交时从侧边栏中的mysql获取搜索结果

  25. 25

    如何在不刷新页面的情况下正确显示存储在外部模型中的数据?

  26. 26

    为什么我的代码不显示在线数据库的结果?如何使ListView中的项目可点击到显示结果的新页面?

  27. 27

    scrollTop()仅在刷新页面后显示结果

  28. 28

    如何使用w / Lunr.js在Jekyll中打开包含搜索结果的新页面?

  29. 29

    jQuery FullCalendar如何在ajax调用后显示数据而不刷新页面

热门标签

归档