{"id":38636,"date":"2023-04-18T03:23:10","date_gmt":"2024-02-06T06:46:49","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/"},"modified":"2024-04-30T00:02:42","modified_gmt":"2024-04-29T16:02:42","slug":"%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/","title":{"rendered":"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1"},"content":{"rendered":"<h1>\u51c6\u5907<\/h1>\n<p>\u8bf7\u6309\u7167\u4ee5\u4e0b\u987a\u5e8f\u6267\u884c\u547d\u4ee4\uff0c\u642d\u5efaAmplify-React\u73af\u5883\u3002<\/p>\n<p>1. \u5b89\u88c5AmplifyCLI\u3002<\/p>\n<pre class=\"post-pre\"><code>npm install -g @aws-amplify\/cli\r\n<\/code><\/pre>\n<p>\u8bbe\u5b9aAmplify\u3002<\/p>\n<pre class=\"post-pre\"><code>amplify configure\r\nSpecify the AWS Region\r\n? region:  # Your preferred region\r\nSpecify the username of the new IAM user:\r\n? user name:  # User name for Amplify IAM user\r\nComplete the user creation using the AWS console\r\nEnter the access key of the newly created user:\r\n? accessKeyId:  # YOUR_ACCESS_KEY_ID\r\n? secretAccessKey:  # YOUR_SECRET_ACCESS_KEY\r\nThis would update\/create the AWS Profile in your local machine\r\n? Profile Name:  # (default)\r\n\r\nSuccessfully set up the new user.\r\n<\/code><\/pre>\n<p>\u521b\u5efaAmplify\u9879\u76ee<\/p>\n<pre class=\"post-pre\"><code>npx create-react-app react-amplified\r\ncd react-amplified\r\n<\/code><\/pre>\n<p>4. \u5728Amplify\u4e0a\u7684\u521d\u59cb\u5316<\/p>\n<pre class=\"post-pre\"><code>amplify init\r\n\r\nEnter a name for the project (react-amplified)\r\n\r\n# All AWS services you provision for your app are grouped into an \"environment\"\r\n# A common naming convention is dev, staging, and production\r\nEnter a name for the environment (dev)\r\n\r\n# Sometimes the CLI will prompt you to edit a file, it will use this editor to open those files.\r\nChoose your default editor\r\n\r\n# Amplify supports JavaScript (Web &amp; React Native), iOS, and Android apps\r\nChoose the type of app that you're building (javascript)\r\n\r\nWhat JavaScript framework are you using (react)\r\n\r\nSource directory path (src)\r\n\r\nDistribution directory path (build)\r\n\r\nBuild command (npm run build)\r\n\r\nStart command (npm start)\r\n\r\n# This is the profile you created with the `amplify configure` command in the introduction step.\r\nDo you want to use an AWS profile\r\n<\/code><\/pre>\n<p>\u5728Amplify\u4e0a\u5b89\u88c5\u8f6f\u4ef6\u5305<\/p>\n<pre class=\"post-pre\"><code>npm install aws-amplify @aws-amplify\/ui-react@1.x.x\r\n<\/code><\/pre>\n<h1>\u7ec4\u6210<\/h1>\n<pre class=\"post-pre\"><code>react-amplified\r\n    |   \r\n    +---public\r\n    |      index.html\r\n    |                \r\n    \\---src\r\n        |   App.js\r\n        |   aws-exports.js\u3000\u21d2\u3000\u81ea\u52d5\u751f\u6210\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n        |   index.js\r\n        |       \r\n        +---page\r\n        |    \u3000\u3000Index.js\r\n        |    \u3000\u3000Page1.js\r\n        |    \u3000\u3000Page2.js\r\n        |    \u3000\u3000NotFound.js\r\n        |    \u3000\u3000ErrorBoundary.js\r\n<\/code><\/pre>\n<h1>\u5b9e\u65bd<\/h1>\n<pre class=\"post-pre\"><code><span class=\"cp\">&lt;!DOCTYPE html&gt;<\/span>\r\n<span class=\"nt\">&lt;html<\/span> <span class=\"na\">lang=<\/span><span class=\"s\">\"ja\"<\/span><span class=\"nt\">&gt;<\/span>\r\n  <span class=\"nt\">&lt;head&gt;<\/span>\r\n    <span class=\"nt\">&lt;meta<\/span> <span class=\"na\">charset=<\/span><span class=\"s\">\"UTF-8\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    <span class=\"nt\">&lt;meta<\/span> <span class=\"na\">http-equiv=<\/span><span class=\"s\">\"X-UA-Compatible\"<\/span> <span class=\"na\">content=<\/span><span class=\"s\">\"IE=edge\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    <span class=\"nt\">&lt;meta<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"viewport\"<\/span> <span class=\"na\">content=<\/span><span class=\"s\">\"width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no\"<\/span><span class=\"nt\">&gt;<\/span>\r\n  <span class=\"nt\">&lt;\/head&gt;<\/span>\r\n  <span class=\"nt\">&lt;body&gt;<\/span>\r\n    <span class=\"nt\">&lt;div<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"root\"<\/span><span class=\"nt\">&gt;&lt;\/div&gt;<\/span>\r\n  <span class=\"nt\">&lt;\/body&gt;<\/span>\r\n<span class=\"nt\">&lt;\/html&gt;<\/span>\r\n\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">ReactDOM<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react-dom<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">Amplify<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">aws-amplify<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>                   \r\n<span class=\"k\">import<\/span> <span class=\"nx\">App<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/App<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"c1\">\/\/\u4e88\u671f\u305b\u306c\u30a8\u30e9\u30fc\u30da\u30fc\u30b8<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">ErrorBoundary<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/page\/ErrorBoundary<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"c1\">\/\/Amplify\u306e\u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u3080<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">config<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/aws-exports<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n<span class=\"nx\">Amplify<\/span><span class=\"p\">.<\/span><span class=\"nf\">configure<\/span><span class=\"p\">(<\/span><span class=\"nx\">config<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"nx\">ReactDOM<\/span><span class=\"p\">.<\/span><span class=\"nf\">render<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">ErrorBoundary<\/span><span class=\"o\">&gt;&lt;<\/span><span class=\"nx\">App<\/span> <span class=\"o\">\/&gt;&lt;<\/span><span class=\"sr\">\/ErrorBoundary&gt;,<\/span> \r\n                <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">getElementById<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">root<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\r\n\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">withAuthenticator<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">aws-amplify-react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">BrowserRouter<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Route<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react-router-dom<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Component<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"c1\">\/\/\u30da\u30fc\u30b8\u30a4\u30f3\u30dd\u30fc\u30c8<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">Index<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/page\/Index<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">Page1<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/page\/Page1<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">Page2<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/page\/Page2<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">NotFound<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/page\/NotFound<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"kd\">class<\/span> <span class=\"nc\">App<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Component<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\r\n            <span class=\"p\">{<\/span><span class=\"cm\">\/*\u30eb\u30fc\u30bf\u30fc\u5ba3\u8a00*\/<\/span><span class=\"p\">}<\/span>\r\n            <span class=\"o\">&lt;<\/span><span class=\"nx\">BrowserRouter<\/span><span class=\"o\">&gt;<\/span>\r\n                <span class=\"o\">&lt;<\/span><span class=\"nx\">Route<\/span> <span class=\"nx\">exact<\/span> <span class=\"nx\">path<\/span><span class=\"o\">=<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/<\/span><span class=\"dl\">'<\/span> <span class=\"nx\">component<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">Index<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\r\n<\/span>                <span class=\"o\">&lt;<\/span><span class=\"nx\">Route<\/span> <span class=\"nx\">exact<\/span> <span class=\"nx\">path<\/span><span class=\"o\">=<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/page1<\/span><span class=\"dl\">'<\/span> <span class=\"nx\">component<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">Page1<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\r\n<\/span>                <span class=\"o\">&lt;<\/span><span class=\"nx\">Route<\/span> <span class=\"nx\">exact<\/span> <span class=\"nx\">path<\/span><span class=\"o\">=<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\/page1<\/span><span class=\"dl\">'<\/span> <span class=\"nx\">component<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">Page2<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\r\n<\/span>                <span class=\"p\">{<\/span><span class=\"cm\">\/*404\u30da\u30fc\u30b8*\/<\/span><span class=\"p\">}<\/span>\r\n                <span class=\"o\">&lt;<\/span><span class=\"nx\">Route<\/span> <span class=\"nx\">component<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">NotFound<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\r\n<\/span>            <span class=\"o\">&lt;<\/span><span class=\"sr\">\/BrowserRouter<\/span><span class=\"err\">&gt;\r\n<\/span>        <span class=\"p\">);<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"c1\">\/\/Amplify\u306e\u9ad8\u7d1a\u30b3\u30f3\u30dd\u30cd\u30f3\u30c8(HoC)\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8<\/span>\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nf\">withAuthenticator<\/span><span class=\"p\">(<\/span><span class=\"nx\">App<\/span><span class=\"p\">);<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Component<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">Index<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Component<\/span> <span class=\"p\">{<\/span>\r\n    \r\n    <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\r\n             <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;&lt;<\/span><span class=\"nx\">h2<\/span> <span class=\"o\">&gt;<\/span><span class=\"nx\">Index<\/span> <span class=\"nx\">Page<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2&gt;&lt;\/<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\r\n        <span class=\"p\">);<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Component<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">Page1<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Component<\/span> <span class=\"p\">{<\/span>\r\n    \r\n    <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\r\n            <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;&lt;<\/span><span class=\"nx\">h2<\/span> <span class=\"o\">&gt;<\/span><span class=\"nx\">Page1<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2&gt;&lt;\/<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\r\n        <span class=\"p\">);<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Component<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">Page2<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Component<\/span> <span class=\"p\">{<\/span>\r\n    \r\n    <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\r\n           <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;&lt;<\/span><span class=\"nx\">h2<\/span> <span class=\"o\">&gt;<\/span><span class=\"nx\">Page2<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2&gt;&lt;\/<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\r\n        <span class=\"p\">);<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\r\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Component<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">NotFound<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Component<\/span> <span class=\"p\">{<\/span>\r\n    \r\n    <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\r\n               <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;&lt;<\/span><span class=\"nx\">h2<\/span> <span class=\"o\">&gt;<\/span><span class=\"nb\">Error<\/span> <span class=\"mi\">404<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Not<\/span> <span class=\"nx\">Found<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2&gt;&lt;\/<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\r\n        <span class=\"p\">);<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Component<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ErrorBoundary<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Component<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nf\">constructor<\/span><span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">super<\/span><span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">state<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">hasError<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span> <span class=\"p\">};<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n    <span class=\"kd\">static<\/span> <span class=\"nf\">getDerivedStateFromError<\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span> <span class=\"na\">hasError<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">};<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n    <span class=\"nf\">componentDidCatch<\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">,<\/span> <span class=\"nx\">errorInfo<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"c1\">\/\/\u30a8\u30e9\u30fc\u60c5\u5831\u3092\u51fa\u529b\u3059\u308b<\/span>\r\n        <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">,<\/span> <span class=\"nx\">errorInfo<\/span><span class=\"p\">);<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n    <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">state<\/span><span class=\"p\">.<\/span><span class=\"nx\">hasError<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"c1\">\/\/ \u30a8\u30e9\u30fc\u767a\u751f\u3059\u308bUI<\/span>\r\n            <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\r\n                <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span> <span class=\"o\">&gt;<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h2<\/span> <span class=\"o\">&gt;<\/span><span class=\"nx\">\u4e88\u671f\u305b\u306c\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f<\/span><span class=\"err\">\u3002<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2&gt;&lt;\/<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\r\n            <span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">props<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">;<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h1>\u8bf7\u53c2\u9605<\/h1>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u51c6\u5907 \u8bf7\u6309\u7167\u4ee5\u4e0b\u987a\u5e8f\u6267\u884c\u547d\u4ee4\uff0c\u642d\u5efaAmplify-React\u73af\u5883\u3002 1. \u5b89\u88c5AmplifyCLI\u3002 npm  [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-38636","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5229\u7528-amplify-\u548c-react-\u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\" \/>\n<meta property=\"og:description\" content=\"\u51c6\u5907 \u8bf7\u6309\u7167\u4ee5\u4e0b\u987a\u5e8f\u6267\u884c\u547d\u4ee4\uff0c\u642d\u5efaAmplify-React\u73af\u5883\u3002 1. \u5b89\u88c5AmplifyCLI\u3002 npm [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5229\u7528-amplify-\u548c-react-\u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-06T06:46:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T16:02:42+00:00\" \/>\n<meta name=\"author\" content=\"\u79d1, \u9896\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u9896\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/\",\"name\":\"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2024-02-06T06:46:49+00:00\",\"dateModified\":\"2024-04-29T16:02:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\",\"name\":\"\u79d1, \u9896\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u9896\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5229\u7528-amplify-\u548c-react-\u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1","og_description":"\u51c6\u5907 \u8bf7\u6309\u7167\u4ee5\u4e0b\u987a\u5e8f\u6267\u884c\u547d\u4ee4\uff0c\u642d\u5efaAmplify-React\u73af\u5883\u3002 1. \u5b89\u88c5AmplifyCLI\u3002 npm [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5229\u7528-amplify-\u548c-react-\u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2024-02-06T06:46:49+00:00","article_modified_time":"2024-04-29T16:02:42+00:00","author":"\u79d1, \u9896","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u9896","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/","name":"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2024-02-06T06:46:49+00:00","dateModified":"2024-04-29T16:02:42+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5229\u7528 Amplify \u548c React \u8fdb\u884c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e","name":"\u79d1, \u9896","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","caption":"\u79d1, \u9896"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8-amplify-%e5%92%8c-react-%e8%bf%9b%e8%a1%8c%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/38636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=38636"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/38636\/revisions"}],"predecessor-version":[{"id":88451,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/38636\/revisions\/88451"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=38636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=38636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=38636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}