Commit ae47cfa4 authored by mayi's avatar mayi
Browse files

study完成,axjx异步获取数据,MVC-Redux转变,中间件redux-thunk使用来处理异步action

parent c90e538d
[{"D:\\code\\reactTravel\\travel2162\\src\\index.tsx":"1","D:\\code\\reactTravel\\travel2162\\src\\App.tsx":"2","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\Header.tsx":"3","D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\Footer.tsx":"4","D:\\code\\reactTravel\\travel2162\\src\\components\\index.ts":"5","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\index.ts":"6","D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\index.ts":"7","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\index.ts":"8","D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\index.ts":"9","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\SideMenu.tsx":"10","D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\carousel.tsx":"11","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\mockup.ts":"12","D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\index.ts":"13","D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productionCollection.tsx":"14","D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productImage.tsx":"15","D:\\code\\reactTravel\\travel2162\\src\\components\\business\\index.ts":"16","D:\\code\\reactTravel\\travel2162\\src\\components\\business\\bussiness.tsx":"17","D:\\code\\reactTravel\\travel2162\\src\\pages\\index.ts":"18","D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\index.ts":"19","D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\home.tsx":"20","D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\mockups.ts":"21","D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\index.ts":"22","D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\index.ts":"23","D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\register.tsx":"24","D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\signin.tsx":"25","D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\index.ts":"26","D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\detail.tsx":"27","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\HeaderClass.tsx":"28","D:\\code\\reactTravel\\travel2162\\src\\redux\\store.ts":"29","D:\\code\\reactTravel\\travel2162\\src\\i18n\\configs.ts":"30","D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageActions.ts":"31","D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageReducer.ts":"32","D:\\code\\reactTravel\\travel2162\\src\\redux\\hooks.ts":"33","D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\index.ts":"34","D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\studys.tsx":"35","D:\\code\\reactTravel\\travel2162\\src\\redux\\citys\\cityReducer.ts":"36"},{"size":395,"mtime":1622710680745,"results":"37","hashOfConfig":"38"},{"size":805,"mtime":1622791184109,"results":"39","hashOfConfig":"38"},{"size":4021,"mtime":1622796988839,"results":"40","hashOfConfig":"38"},{"size":463,"mtime":1622707864128,"results":"41","hashOfConfig":"38"},{"size":174,"mtime":1622790833258,"results":"42","hashOfConfig":"38"},{"size":24,"mtime":1622776696728,"results":"43","hashOfConfig":"38"},{"size":24,"mtime":1622624779387,"results":"44","hashOfConfig":"38"},{"size":26,"mtime":1622680972119,"results":"45","hashOfConfig":"38"},{"size":26,"mtime":1622681990791,"results":"46","hashOfConfig":"38"},{"size":1221,"mtime":1622783854523,"results":"47","hashOfConfig":"38"},{"size":607,"mtime":1622682193215,"results":"48","hashOfConfig":"38"},{"size":3293,"mtime":1622682220312,"results":"49","hashOfConfig":"38"},{"size":38,"mtime":1622685541148,"results":"50","hashOfConfig":"38"},{"size":3883,"mtime":1622699519599,"results":"51","hashOfConfig":"38"},{"size":984,"mtime":1622699670900,"results":"52","hashOfConfig":"38"},{"size":27,"mtime":1622688158324,"results":"53","hashOfConfig":"38"},{"size":1392,"mtime":1622689645731,"results":"54","hashOfConfig":"38"},{"size":127,"mtime":1622791130618,"results":"55","hashOfConfig":"38"},{"size":22,"mtime":1622695066653,"results":"56","hashOfConfig":"38"},{"size":2316,"mtime":1622796587710,"results":"57","hashOfConfig":"38"},{"size":6945,"mtime":1622689191039,"results":"58","hashOfConfig":"38"},{"size":26,"mtime":1622696658119,"results":"59","hashOfConfig":"38"},{"size":24,"mtime":1622696661468,"results":"60","hashOfConfig":"38"},{"size":238,"mtime":1622696729218,"results":"61","hashOfConfig":"38"},{"size":254,"mtime":1622697071055,"results":"62","hashOfConfig":"38"},{"size":24,"mtime":1622697778294,"results":"63","hashOfConfig":"38"},{"size":360,"mtime":1622697776894,"results":"64","hashOfConfig":"38"},{"size":4655,"mtime":1622790838801,"results":"65","hashOfConfig":"66"},{"size":382,"mtime":1622796890665,"results":"67","hashOfConfig":"38"},{"size":621,"mtime":1622707691438,"results":"68","hashOfConfig":"38"},{"size":838,"mtime":1622793235231,"results":"69","hashOfConfig":"38"},{"size":909,"mtime":1622793168510,"results":"70","hashOfConfig":"38"},{"size":192,"mtime":1622790765537,"results":"71","hashOfConfig":"38"},{"size":24,"mtime":1622791085877,"results":"72","hashOfConfig":"38"},{"size":1380,"mtime":1622798980708,"results":"73","hashOfConfig":"38"},{"size":592,"mtime":1622799240553,"results":"74","hashOfConfig":"38"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},"1p70tmh",{"filePath":"78","messages":"79","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"80","messages":"81","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"82","messages":"83","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"84","usedDeprecatedRules":"77"},{"filePath":"85","messages":"86","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"87","messages":"88","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"89","messages":"90","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"99","usedDeprecatedRules":"77"},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"104","messages":"105","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"106","messages":"107","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"116","messages":"117","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"118","messages":"119","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"120","messages":"121","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"122","messages":"123","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"124","messages":"125","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"126","usedDeprecatedRules":"77"},{"filePath":"127","messages":"128","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"129","usedDeprecatedRules":"77"},{"filePath":"130","messages":"131","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"132","messages":"133","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"134","usedDeprecatedRules":"77"},{"filePath":"135","messages":"136","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"1yicyq7",{"filePath":"137","messages":"138","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"139","messages":"140","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"141","messages":"142","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"143","usedDeprecatedRules":"77"},{"filePath":"144","messages":"145","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"146","messages":"147","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"148","messages":"149","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"77"},{"filePath":"150","messages":"151","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"152","messages":"153","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"D:\\code\\reactTravel\\travel2162\\src\\index.tsx",[],["154","155"],"D:\\code\\reactTravel\\travel2162\\src\\App.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\Header.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\Footer.tsx",["156","157","158","159","160"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport { Layout, Typography, Input, Menu, Button, Dropdown } from \"antd\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n\r\nexport const Footer: React.FC = () => {\r\nconst {t} = useTranslation();\r\n return <>\r\n <Layout.Footer>\r\n <Typography.Title level={3} style={{textAlign: 'center'}}>\r\n {t('footer.detail')}\r\n </Typography.Title>\r\n </Layout.Footer></>;\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\components\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\SideMenu.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\carousel.tsx",["161"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport styles from \"./carousel.module.css\";\r\nimport { Image, Carousel as AntdCarousel } from \"antd\";\r\nimport Carouse1 from \"../../assets/images/carousel_1.jpg\";\r\nimport Carouse2 from \"../../assets/images/carousel_2.jpg\";\r\nimport Carouse3 from \"../../assets/images/carousel_3.jpg\";\r\nexport const Carouseee: React.FC = () => {\r\n return (\r\n <AntdCarousel autoplay className={styles.slider}>\r\n <Image src={Carouse1}></Image>\r\n <Image src={Carouse2}></Image>\r\n <Image src={Carouse3}></Image>\r\n </AntdCarousel>\r\n );\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\mockup.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productionCollection.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productImage.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\business\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\business\\bussiness.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\home.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\mockups.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\register.tsx",["162","163"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport styles from \"./register.module.css\";\r\nexport const Register: React.FC = () => {\r\n return (\r\n <>\r\n {\" \"}\r\n <h1>注册页面</h1>\r\n </>\r\n );\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\signin.tsx",["164","165"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport styles from \"./signin.module.css\";\r\nexport const SignInPage: React.FC = (props) => {\r\n console.log(props)\r\n return (\r\n <>\r\n <h1>登陆页面</h1>\r\n </>\r\n );\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\detail.tsx",["166"],"import * as React from 'react';\r\nimport { Component } from 'react';\r\nimport {RouteComponentProps} from 'react-router-dom';\r\ninterface MatchParams {\r\n tourisRouteId:string\r\n}\r\n export const Deatil:React.FC<RouteComponentProps<MatchParams>> =(props)=>{\r\n return(\r\n <h1>xiangqinguemian,路线id:{props.match.params.tourisRouteId}</h1>\r\n )\r\n }","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\HeaderClass.tsx",["167","168"],"D:\\code\\reactTravel\\travel2162\\src\\redux\\store.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\i18n\\configs.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageActions.ts",["169","170","171"],"import language from \"./languageReducer\";\r\n\r\nexport const CHANGE_LANGUAGE = \"changeLanguage\";\r\nexport const ADD_LANGUAGE = \"addLanguage\";\r\ninterface changeLanguageActionCreator {\r\n type: typeof CHANGE_LANGUAGE;\r\n payload: \"en\" | \"zh\";\r\n}\r\n\r\ninterface addLanguageActionCreator {\r\n type: typeof ADD_LANGUAGE;\r\n payload: { name: string; code: string };\r\n}\r\n\r\nexport type languageActionTypes =\r\n | changeLanguageActionCreator\r\n | addLanguageActionCreator;\r\nexport const changeLanguageActionCreator = (\r\n languageCode: \"en\" | \"zh\"\r\n): changeLanguageActionCreator => {\r\n return {\r\n type: CHANGE_LANGUAGE,\r\n payload: languageCode,\r\n };\r\n};\r\n\r\nexport const addLanguageActionCreator = (\r\n name: string,\r\n code: string\r\n): addLanguageActionCreator => {\r\n return {\r\n type: ADD_LANGUAGE,\r\n payload: { name, code },\r\n };\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageReducer.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\redux\\hooks.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\studys.tsx",["172","173","174"],"D:\\code\\reactTravel\\travel2162\\src\\redux\\citys\\cityReducer.ts",["175","176"],{"ruleId":"177","replacedBy":"178"},{"ruleId":"179","replacedBy":"180"},{"ruleId":"181","severity":1,"message":"182","line":2,"column":10,"nodeType":"183","messageId":"184","endLine":2,"endColumn":19},{"ruleId":"181","severity":1,"message":"185","line":3,"column":30,"nodeType":"183","messageId":"184","endLine":3,"endColumn":35},{"ruleId":"181","severity":1,"message":"186","line":3,"column":37,"nodeType":"183","messageId":"184","endLine":3,"endColumn":41},{"ruleId":"181","severity":1,"message":"187","line":3,"column":43,"nodeType":"183","messageId":"184","endLine":3,"endColumn":49},{"ruleId":"181","severity":1,"message":"188","line":3,"column":51,"nodeType":"183","messageId":"184","endLine":3,"endColumn":59},{"ruleId":"181","severity":1,"message":"182","line":2,"column":10,"nodeType":"183","messageId":"184","endLine":2,"endColumn":19},{"ruleId":"181","severity":1,"message":"182","line":2,"column":10,"nodeType":"183","messageId":"184","endLine":2,"endColumn":19},{"ruleId":"181","severity":1,"message":"189","line":3,"column":8,"nodeType":"183","messageId":"184","endLine":3,"endColumn":14},{"ruleId":"181","severity":1,"message":"182","line":2,"column":10,"nodeType":"183","messageId":"184","endLine":2,"endColumn":19},{"ruleId":"181","severity":1,"message":"189","line":3,"column":8,"nodeType":"183","messageId":"184","endLine":3,"endColumn":14},{"ruleId":"181","severity":1,"message":"182","line":2,"column":10,"nodeType":"183","messageId":"184","endLine":2,"endColumn":19},{"ruleId":"181","severity":1,"message":"182","line":3,"column":10,"nodeType":"183","messageId":"184","endLine":3,"endColumn":19},{"ruleId":"181","severity":1,"message":"190","line":20,"column":3,"nodeType":"183","messageId":"184","endLine":20,"endColumn":16},{"ruleId":"181","severity":1,"message":"191","line":1,"column":8,"nodeType":"183","messageId":"184","endLine":1,"endColumn":16},{"ruleId":"192","severity":1,"message":"193","line":18,"column":14,"nodeType":"183","messageId":"194","endLine":18,"endColumn":41},{"ruleId":"192","severity":1,"message":"195","line":27,"column":14,"nodeType":"183","messageId":"194","endLine":27,"endColumn":38},{"ruleId":"181","severity":1,"message":"182","line":2,"column":10,"nodeType":"183","messageId":"184","endLine":2,"endColumn":19},{"ruleId":"181","severity":1,"message":"189","line":3,"column":8,"nodeType":"183","messageId":"184","endLine":3,"endColumn":14},{"ruleId":"181","severity":1,"message":"185","line":4,"column":10,"nodeType":"183","messageId":"184","endLine":4,"endColumn":15},{"ruleId":"181","severity":1,"message":"196","line":1,"column":9,"nodeType":"183","messageId":"184","endLine":1,"endColumn":21},{"ruleId":"197","severity":1,"message":"198","line":17,"column":2,"nodeType":"199","endLine":26,"endColumn":4},"no-native-reassign",["200"],"no-negated-in-lhs",["201"],"@typescript-eslint/no-unused-vars","'Component' is defined but never used.","Identifier","unusedVar","'Input' is defined but never used.","'Menu' is defined but never used.","'Button' is defined but never used.","'Dropdown' is defined but never used.","'styles' is defined but never used.","'MenuItemProps' is defined but never used.","'language' is defined but never used.","@typescript-eslint/no-redeclare","'changeLanguageActionCreator' is already defined.","redeclared","'addLanguageActionCreator' is already defined.","'CHANGE_INPUT' is defined but never used.","import/no-anonymous-default-export","Assign arrow function to a variable before exporting as module default","ExportDefaultDeclaration","no-global-assign","no-unsafe-negation"]
\ No newline at end of file
[{"D:\\code\\reactTravel\\travel2162\\src\\index.tsx":"1","D:\\code\\reactTravel\\travel2162\\src\\App.tsx":"2","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\Header.tsx":"3","D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\Footer.tsx":"4","D:\\code\\reactTravel\\travel2162\\src\\components\\index.ts":"5","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\index.ts":"6","D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\index.ts":"7","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\index.ts":"8","D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\index.ts":"9","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\SideMenu.tsx":"10","D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\carousel.tsx":"11","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\mockup.ts":"12","D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\index.ts":"13","D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productionCollection.tsx":"14","D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productImage.tsx":"15","D:\\code\\reactTravel\\travel2162\\src\\components\\business\\index.ts":"16","D:\\code\\reactTravel\\travel2162\\src\\components\\business\\bussiness.tsx":"17","D:\\code\\reactTravel\\travel2162\\src\\pages\\index.ts":"18","D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\index.ts":"19","D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\home.tsx":"20","D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\mockups.ts":"21","D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\index.ts":"22","D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\index.ts":"23","D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\register.tsx":"24","D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\signin.tsx":"25","D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\index.ts":"26","D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\detail.tsx":"27","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\HeaderClass.tsx":"28","D:\\code\\reactTravel\\travel2162\\src\\redux\\store.ts":"29","D:\\code\\reactTravel\\travel2162\\src\\i18n\\configs.ts":"30","D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageActions.ts":"31","D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageReducer.ts":"32","D:\\code\\reactTravel\\travel2162\\src\\redux\\hooks.ts":"33","D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\index.ts":"34","D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\studys.tsx":"35","D:\\code\\reactTravel\\travel2162\\src\\redux\\citys\\cityReducer.ts":"36","D:\\code\\reactTravel\\travel2162\\src\\redux\\citys\\cityActions.ts":"37","D:\\code\\reactTravel\\travel2162\\src\\redux\\recommendProducts\\recommendProductsReducer.ts":"38","D:\\code\\reactTravel\\travel2162\\src\\redux\\recommendProducts\\recommendProductActions.ts":"39"},{"size":476,"mtime":1623051183317,"results":"40","hashOfConfig":"41"},{"size":805,"mtime":1622791184109,"results":"42","hashOfConfig":"41"},{"size":4021,"mtime":1623052017184,"results":"43","hashOfConfig":"41"},{"size":463,"mtime":1622707864128,"results":"44","hashOfConfig":"41"},{"size":174,"mtime":1622790833258,"results":"45","hashOfConfig":"41"},{"size":24,"mtime":1622776696728,"results":"46","hashOfConfig":"41"},{"size":24,"mtime":1622624779387,"results":"47","hashOfConfig":"41"},{"size":26,"mtime":1622680972119,"results":"48","hashOfConfig":"41"},{"size":26,"mtime":1622681990791,"results":"49","hashOfConfig":"41"},{"size":1221,"mtime":1622783854523,"results":"50","hashOfConfig":"41"},{"size":607,"mtime":1622682193215,"results":"51","hashOfConfig":"41"},{"size":3293,"mtime":1622682220312,"results":"52","hashOfConfig":"41"},{"size":38,"mtime":1622685541148,"results":"53","hashOfConfig":"41"},{"size":3883,"mtime":1622699519599,"results":"54","hashOfConfig":"41"},{"size":984,"mtime":1622699670900,"results":"55","hashOfConfig":"41"},{"size":27,"mtime":1622688158324,"results":"56","hashOfConfig":"41"},{"size":1392,"mtime":1622689645731,"results":"57","hashOfConfig":"41"},{"size":127,"mtime":1622791130618,"results":"58","hashOfConfig":"41"},{"size":22,"mtime":1622695066653,"results":"59","hashOfConfig":"41"},{"size":4114,"mtime":1623056267344,"results":"60","hashOfConfig":"41"},{"size":6945,"mtime":1622689191039,"results":"61","hashOfConfig":"41"},{"size":26,"mtime":1622696658119,"results":"62","hashOfConfig":"41"},{"size":24,"mtime":1622696661468,"results":"63","hashOfConfig":"41"},{"size":238,"mtime":1622696729218,"results":"64","hashOfConfig":"41"},{"size":254,"mtime":1622697071055,"results":"65","hashOfConfig":"41"},{"size":24,"mtime":1622697778294,"results":"66","hashOfConfig":"41"},{"size":360,"mtime":1622697776894,"results":"67","hashOfConfig":"41"},{"size":4655,"mtime":1622790838801,"results":"68","hashOfConfig":"69"},{"size":588,"mtime":1623054903712,"results":"70","hashOfConfig":"41"},{"size":621,"mtime":1622707691438,"results":"71","hashOfConfig":"41"},{"size":838,"mtime":1623029738024,"results":"72","hashOfConfig":"41"},{"size":909,"mtime":1623042908630,"results":"73","hashOfConfig":"41"},{"size":192,"mtime":1622790765537,"results":"74","hashOfConfig":"41"},{"size":24,"mtime":1622791085877,"results":"75","hashOfConfig":"41"},{"size":2090,"mtime":1623043515553,"results":"76","hashOfConfig":"41"},{"size":772,"mtime":1623044037996,"results":"77","hashOfConfig":"41"},{"size":664,"mtime":1623044170405,"results":"78","hashOfConfig":"41"},{"size":914,"mtime":1623052691793,"results":"79","hashOfConfig":"41"},{"size":2351,"mtime":1623055990803,"results":"80","hashOfConfig":"41"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1p70tmh",{"filePath":"83","messages":"84","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"88","messages":"89","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"90","usedDeprecatedRules":"85"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"99","messages":"100","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"101","messages":"102","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"103","messages":"104","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"105","usedDeprecatedRules":"85"},{"filePath":"106","messages":"107","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"116","messages":"117","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"118","messages":"119","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"120","messages":"121","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"122","messages":"123","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"124","messages":"125","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"126","messages":"127","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"128","messages":"129","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"130","messages":"131","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"132","usedDeprecatedRules":"85"},{"filePath":"133","messages":"134","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"135","usedDeprecatedRules":"85"},{"filePath":"136","messages":"137","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"138","messages":"139","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"140","usedDeprecatedRules":"85"},{"filePath":"141","messages":"142","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"1yicyq7",{"filePath":"143","messages":"144","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"145","messages":"146","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"147","messages":"148","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"149","messages":"150","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"151","messages":"152","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"153","messages":"154","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"155","messages":"156","errorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"157","messages":"158","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"159","messages":"160","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"161","messages":"162","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"163","messages":"164","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"D:\\code\\reactTravel\\travel2162\\src\\index.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\App.tsx",[],["165","166"],"D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\Header.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\Footer.tsx",["167","168","169","170","171"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport { Layout, Typography, Input, Menu, Button, Dropdown } from \"antd\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n\r\nexport const Footer: React.FC = () => {\r\nconst {t} = useTranslation();\r\n return <>\r\n <Layout.Footer>\r\n <Typography.Title level={3} style={{textAlign: 'center'}}>\r\n {t('footer.detail')}\r\n </Typography.Title>\r\n </Layout.Footer></>;\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\components\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\Footer\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\SideMenu.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\carousel\\carousel.tsx",["172"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport styles from \"./carousel.module.css\";\r\nimport { Image, Carousel as AntdCarousel } from \"antd\";\r\nimport Carouse1 from \"../../assets/images/carousel_1.jpg\";\r\nimport Carouse2 from \"../../assets/images/carousel_2.jpg\";\r\nimport Carouse3 from \"../../assets/images/carousel_3.jpg\";\r\nexport const Carouseee: React.FC = () => {\r\n return (\r\n <AntdCarousel autoplay className={styles.slider}>\r\n <Image src={Carouse1}></Image>\r\n <Image src={Carouse2}></Image>\r\n <Image src={Carouse3}></Image>\r\n </AntdCarousel>\r\n );\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\components\\sideMenu\\mockup.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productionCollection.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\productionCollection\\productImage.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\business\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\components\\business\\bussiness.tsx",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\home.tsx",["173","174","175","176"],"D:\\code\\reactTravel\\travel2162\\src\\pages\\Home\\mockups.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\register\\register.tsx",["177","178"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport styles from \"./register.module.css\";\r\nexport const Register: React.FC = () => {\r\n return (\r\n <>\r\n {\" \"}\r\n <h1>注册页面</h1>\r\n </>\r\n );\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\pages\\signin\\signin.tsx",["179","180"],"import * as React from \"react\";\r\nimport { Component } from \"react\";\r\nimport styles from \"./signin.module.css\";\r\nexport const SignInPage: React.FC = (props) => {\r\n console.log(props)\r\n return (\r\n <>\r\n <h1>登陆页面</h1>\r\n </>\r\n );\r\n};\r\n","D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\detail\\detail.tsx",["181"],"import * as React from 'react';\r\nimport { Component } from 'react';\r\nimport {RouteComponentProps} from 'react-router-dom';\r\ninterface MatchParams {\r\n tourisRouteId:string\r\n}\r\n export const Deatil:React.FC<RouteComponentProps<MatchParams>> =(props)=>{\r\n return(\r\n <h1>xiangqinguemian,路线id:{props.match.params.tourisRouteId}</h1>\r\n )\r\n }","D:\\code\\reactTravel\\travel2162\\src\\components\\Header\\HeaderClass.tsx",["182","183"],"D:\\code\\reactTravel\\travel2162\\src\\redux\\store.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\i18n\\configs.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageActions.ts",["184","185","186"],"D:\\code\\reactTravel\\travel2162\\src\\redux\\language\\languageReducer.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\redux\\hooks.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\index.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\pages\\studys\\studys.tsx",["187","188","189","190","191","192","193","194"],"D:\\code\\reactTravel\\travel2162\\src\\redux\\citys\\cityReducer.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\redux\\citys\\cityActions.ts",["195","196"],"D:\\code\\reactTravel\\travel2162\\src\\redux\\recommendProducts\\recommendProductsReducer.ts",[],"D:\\code\\reactTravel\\travel2162\\src\\redux\\recommendProducts\\recommendProductActions.ts",[],{"ruleId":"197","replacedBy":"198"},{"ruleId":"199","replacedBy":"200"},{"ruleId":"201","severity":1,"message":"202","line":2,"column":10,"nodeType":"203","messageId":"204","endLine":2,"endColumn":19},{"ruleId":"201","severity":1,"message":"205","line":3,"column":30,"nodeType":"203","messageId":"204","endLine":3,"endColumn":35},{"ruleId":"201","severity":1,"message":"206","line":3,"column":37,"nodeType":"203","messageId":"204","endLine":3,"endColumn":41},{"ruleId":"201","severity":1,"message":"207","line":3,"column":43,"nodeType":"203","messageId":"204","endLine":3,"endColumn":49},{"ruleId":"201","severity":1,"message":"208","line":3,"column":51,"nodeType":"203","messageId":"204","endLine":3,"endColumn":59},{"ruleId":"201","severity":1,"message":"202","line":2,"column":10,"nodeType":"203","messageId":"204","endLine":2,"endColumn":19},{"ruleId":"201","severity":1,"message":"209","line":22,"column":10,"nodeType":"203","messageId":"204","endLine":22,"endColumn":22},{"ruleId":"201","severity":1,"message":"210","line":22,"column":24,"nodeType":"203","messageId":"204","endLine":22,"endColumn":36},{"ruleId":"201","severity":1,"message":"211","line":22,"column":38,"nodeType":"203","messageId":"204","endLine":22,"endColumn":50},{"ruleId":"201","severity":1,"message":"212","line":27,"column":8,"nodeType":"203","messageId":"204","endLine":27,"endColumn":13},{"ruleId":"201","severity":1,"message":"202","line":2,"column":10,"nodeType":"203","messageId":"204","endLine":2,"endColumn":19},{"ruleId":"201","severity":1,"message":"213","line":3,"column":8,"nodeType":"203","messageId":"204","endLine":3,"endColumn":14},{"ruleId":"201","severity":1,"message":"202","line":2,"column":10,"nodeType":"203","messageId":"204","endLine":2,"endColumn":19},{"ruleId":"201","severity":1,"message":"213","line":3,"column":8,"nodeType":"203","messageId":"204","endLine":3,"endColumn":14},{"ruleId":"201","severity":1,"message":"202","line":2,"column":10,"nodeType":"203","messageId":"204","endLine":2,"endColumn":19},{"ruleId":"201","severity":1,"message":"202","line":3,"column":10,"nodeType":"203","messageId":"204","endLine":3,"endColumn":19},{"ruleId":"201","severity":1,"message":"214","line":20,"column":3,"nodeType":"203","messageId":"204","endLine":20,"endColumn":16},{"ruleId":"201","severity":1,"message":"215","line":1,"column":8,"nodeType":"203","messageId":"204","endLine":1,"endColumn":16},{"ruleId":"216","severity":1,"message":"217","line":18,"column":14,"nodeType":"203","messageId":"218","endLine":18,"endColumn":41},{"ruleId":"216","severity":1,"message":"219","line":27,"column":14,"nodeType":"203","messageId":"218","endLine":27,"endColumn":38},{"ruleId":"201","severity":1,"message":"202","line":2,"column":10,"nodeType":"203","messageId":"204","endLine":2,"endColumn":19},{"ruleId":"201","severity":1,"message":"213","line":3,"column":8,"nodeType":"203","messageId":"204","endLine":3,"endColumn":14},{"ruleId":"201","severity":1,"message":"205","line":4,"column":10,"nodeType":"203","messageId":"204","endLine":4,"endColumn":15},{"ruleId":"201","severity":1,"message":"206","line":4,"column":25,"nodeType":"203","messageId":"204","endLine":4,"endColumn":29},{"ruleId":"201","severity":1,"message":"208","line":4,"column":31,"nodeType":"203","messageId":"204","endLine":4,"endColumn":39},{"ruleId":"201","severity":1,"message":"220","line":4,"column":41,"nodeType":"203","messageId":"204","endLine":4,"endColumn":48},{"ruleId":"201","severity":1,"message":"221","line":5,"column":10,"nodeType":"203","messageId":"204","endLine":5,"endColumn":22},{"ruleId":"201","severity":1,"message":"222","line":8,"column":10,"nodeType":"203","messageId":"204","endLine":8,"endColumn":14},{"ruleId":"216","severity":1,"message":"223","line":13,"column":14,"nodeType":"203","messageId":"218","endLine":13,"endColumn":38},{"ruleId":"216","severity":1,"message":"224","line":21,"column":14,"nodeType":"203","messageId":"218","endLine":21,"endColumn":34},"no-native-reassign",["225"],"no-negated-in-lhs",["226"],"@typescript-eslint/no-unused-vars","'Component' is defined but never used.","Identifier","unusedVar","'Input' is defined but never used.","'Menu' is defined but never used.","'Button' is defined but never used.","'Dropdown' is defined but never used.","'productList1' is defined but never used.","'productList2' is defined but never used.","'productList3' is defined but never used.","'axios' is defined but never used.","'styles' is defined but never used.","'MenuItemProps' is defined but never used.","'language' is defined but never used.","@typescript-eslint/no-redeclare","'changeLanguageActionCreator' is already defined.","redeclared","'addLanguageActionCreator' is already defined.","'message' is defined but never used.","'DownOutlined' is defined but never used.","'type' is defined but never used.","'changeInputActionCreator' is already defined.","'addCityActionCreator' is already defined.","no-global-assign","no-unsafe-negation"]
\ No newline at end of file
......@@ -6,10 +6,11 @@ import "./i18n/configs";
import "antd/dist/antd.css";
import { Provider } from "react-redux";
import store from "./redux/store";
import axios from 'axios'
axios.defaults.headers['x-icode'] = '0D1F49DD13B9C757';
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>,
......
import * as React from "react";
// import { Component } from "react";
import {withTranslation,WithTranslation} from 'react-i18next'
import { withTranslation, WithTranslation } from "react-i18next";
import {
Header,
Footer,
......@@ -9,20 +10,79 @@ import {
ProductCollection,
Bussiness,
} from "../../components";
import { connect } from "react-redux";
import styles from "./home.module.css";
import {
// fetchRecommendProductSuccessActionCreator,
// fetchRecommendProductStartActionCreator,
// fetchRecommendProductFailActionCreator,
giveMeDataActionCreator
} from "../../redux/recommendProducts/recommendProductActions";
//0D1F49DD13B9C757
import { productList1, productList2, productList3 } from "./mockups";
import sideImage1 from "../../assets/images/sider_2019_02-04-2.png";
import sideImage2 from "../../assets/images/sider_2019_02-04.png";
import sideImage3 from "../../assets/images/sider_2019_12-09.png";
import { Row, Col, Typography } from "antd";
import { Row, Col, Typography, Spin } from "antd";
import axios from "axios";
import { RootState } from "../../redux/store";
const mapStateToProps = (state: RootState) => {
return {
loading: state.recommendProduct.loading,
error: state.recommendProduct.error,
productList: state.recommendProduct.productList,
};
};
const mapDispatchProps = (dispatch) => {
return {
// fetchStart: () => {
// dispatch(fetchRecommendProductStartActionCreator());
// },
// fetchSuccess: (data) => {
// dispatch(fetchRecommendProductSuccessActionCreator(data));
// },
// fetchFail: (error) => {
// dispatch(fetchRecommendProductFailActionCreator(error));
// },
giveMeData:()=>{
dispatch(giveMeDataActionCreator())
}
};
};
type PropsType = WithTranslation &
ReturnType<typeof mapDispatchProps> &
ReturnType<typeof mapStateToProps>;
export class HomePageComponent extends React.Component<PropsType> {
componentDidMount() {
this.props.giveMeData()
}
export class HomePageComponent extends React.Component<WithTranslation> {
// constructor(props: HomePageProps) {
// super(props);
// this.state = { : };
// }
render() {
const {t} = this.props
const { t } = this.props;
const { productList, loading, error } = this.props;
console.log("productList", productList);
// if (!productList.length) return null;
if (loading) {
return (
<Spin
size="large"
style={{
marginTop: 200,
marginBottom: 200,
marginLeft: "auto",
marginRight: "auto",
width: "100%",
}}
/>
);
}
if (error) {
return <div>网站出错:{error}</div>;
}
return (
<>
<Header />
......@@ -40,7 +100,7 @@ export class HomePageComponent extends React.Component<WithTranslation> {
</div>
</Col>
</Row>
{/* {productList.map} */}
<ProductCollection
title={
<Typography.Title level={3} type="warning">
......@@ -48,7 +108,7 @@ export class HomePageComponent extends React.Component<WithTranslation> {
</Typography.Title>
}
sideImage={sideImage1}
products={productList1}
products={productList[0].touristRoutes}
/>
<ProductCollection
title={
......@@ -57,7 +117,7 @@ export class HomePageComponent extends React.Component<WithTranslation> {
</Typography.Title>
}
sideImage={sideImage2}
products={productList2}
products={productList[1].touristRoutes}
/>
<ProductCollection
title={
......@@ -66,7 +126,7 @@ export class HomePageComponent extends React.Component<WithTranslation> {
</Typography.Title>
}
sideImage={sideImage3}
products={productList3}
products={productList[2].touristRoutes}
/>
<Bussiness />
</div>
......@@ -77,5 +137,7 @@ export class HomePageComponent extends React.Component<WithTranslation> {
}
}
export const HomePage =withTranslation()(HomePageComponent)
\ No newline at end of file
export const HomePage = connect(
mapStateToProps,
mapDispatchProps
)(withTranslation()(HomePageComponent));
import * as React from "react";
import { Component } from "react";
import styles from "./studys.module.css";
import { Input ,Button} from 'antd';
import { Input, Button, Menu, Dropdown, message } from "antd";
import { DownOutlined } from "@ant-design/icons";
import { useSelector } from "../../redux/hooks";
import { useDispatch } from "react-redux";
import { type } from "os";
import {
changeInputActionCreator,
addCityActionCreator,
} from "../../redux/citys/cityActions";
export const Studys: React.FC = () => {
const dispatch = useDispatch();
const cityList =useSelector((state)=>state.city.cityLists)
const cityName =useSelector((state)=>state.city.cityName)
const cityInput =useSelector((state)=>state.city.cityInput)
const addCity =()=>{
console.log(cityInput)
}
const changeInput=(e)=>{
const cityList: { name: string }[] = useSelector(
(state) => state.city.cityLists
);
const cityName = useSelector((state) => state.city.cityName);
const cityInput = useSelector((state) => state.city.cityInput);
// const onClick = ({ key }) => {
// message.info(`Click on item ${key}`);
// };
// const menu = (
// <Menu onClick={onClick}>
// <Menu.Item key="1">1st menu item</Menu.Item>
// <Menu.Item key="2">2nd menu item</Menu.Item>
// <Menu.Item key="3">3rd menu item</Menu.Item>
// </Menu>
// );
const addCity = () => {
dispatch(addCityActionCreator(cityInput));
};
const changeInput = (e) => {
// console.log(e.target.value)
const action = {
type: 'changeInput',
value: e.target.value,
dispatch(changeInputActionCreator(e.target.value));
};
dispatch(action)
}
return (
<>
{/* 做一个与header.tsx类似的页面 */}
<h1>练习页面</h1>
<div>
<div>添加你想去的城市:
<input placeholder="Basic usage"onChange={changeInput} style={{width:200}} value={cityInput} />
<Button type="primary" onClick={addCity} >
<div>
添加你想去的城市:
<input
placeholder="Basic usage"
onChange={changeInput}
style={{ width: 200 }}
value={cityInput}
/>
<Button type="primary" onClick={addCity}>
添加
</Button>
</div>
<h1>我最喜欢的城市:{cityName}</h1>
<h1>我想去的城市:{cityList.map((item,index)=>{
return(
<h1>
我想去的城市:
{cityList.map((item, index) => {
return (
<>
<span>{item.name}</span>
<span>{item.name},</span>
</>
)
})}</h1>
);
})}
</h1>
</div>
</>
);
......
export const CHANGE_INPUT ='changeInput'
export {}
\ No newline at end of file
export const CHANGE_INPUT = "changeInput";
export const ADD_CITY = "addCity";
interface changeInputActionCreator {
type: typeof CHANGE_INPUT;
payload: string;
}
interface addCityActionCreator {
type: typeof ADD_CITY;
payload: { name: string };
}
export type cityActionTypes = changeInputActionCreator | addCityActionCreator;
export const changeInputActionCreator = (
inputValue: string
): changeInputActionCreator => {
return {
type: CHANGE_INPUT,
payload: inputValue,
};
};
export const addCityActionCreator = (name: string): addCityActionCreator => {
return {
type: ADD_CITY,
payload: { name },
};
};
import {CHANGE_INPUT} from './cityActions'
import { CHANGE_INPUT, ADD_CITY, cityActionTypes } from "./cityActions";
export interface CityState {
cityInput:string | number
cityInput: string;
cityName: string;
cityLists: { name: string }[];
}
const defaultState: CityState = {
cityInput:'',
cityInput: "",
cityName: "东京",
cityLists: [
{
......@@ -13,14 +13,19 @@ const defaultState: CityState = {
},
],
};
export default (state = defaultState, action) => {
//eslint-disable-next-line
export default (state = defaultState, action: cityActionTypes) => {
switch (action.type) {
case CHANGE_LANGUAGE:
i18n.changeLanguage(action.payload); //此处会导致不是纯函数
return { ...state, language: action.payload };
case CHANGE_INPUT:
return { ...state, cityInput: action.payload };
case ADD_CITY:
// console.log(action.payload,'action.payload')
return {
...state,
cityLists: [...state.cityLists,action.payload],
cityInput: "",
};
default:
return state;
}
};
};
import { ThunkAction } from "redux-thunk";
import { RootState } from "../store";
import axios from "axios";
export const FETCH_RECOMMEND_PRODUCTS_START = "FETCH_RECOMMEND_PRODUCTS_START"; // 正在调用推荐信息api
export const FETCH_RECOMMEND_PRODUCTS_SUCCESS =
"FETCH_RECOMMEND_PRODUCTS_SUCCESS"; // 推荐信息api调用成功
export const FETCH_RECOMMEND_PRODUCTS_FAIL = "FETCH_RECOMMEND_PRODUCTS_FAIL"; // 推荐信息api调用失败
interface FetchRecommendProductStartAction {
type: typeof FETCH_RECOMMEND_PRODUCTS_START;
}
interface FetchRecommendProductSuccessAction {
type: typeof FETCH_RECOMMEND_PRODUCTS_SUCCESS;
payload: any;
}
interface FetchRecommendProductFailAction {
type: typeof FETCH_RECOMMEND_PRODUCTS_FAIL;
payload: any;
}
export type RecommendProductAction =
| FetchRecommendProductStartAction
| FetchRecommendProductSuccessAction
| FetchRecommendProductFailAction;
export const fetchRecommendProductStartActionCreator =
(): FetchRecommendProductStartAction => {
return {
type: FETCH_RECOMMEND_PRODUCTS_START,
};
};
export const fetchRecommendProductSuccessActionCreator = (
data
): FetchRecommendProductSuccessAction => {
return {
type: FETCH_RECOMMEND_PRODUCTS_SUCCESS,
payload: data,
};
};
export const fetchRecommendProductFailActionCreator = (
error
): FetchRecommendProductFailAction => {
return {
type: FETCH_RECOMMEND_PRODUCTS_FAIL,
payload: error,
};
};
export const giveMeDataActionCreator =
(): ThunkAction<void, RootState, undefined, RecommendProductAction> =>
async (dispatch, getState) => {
dispatch(fetchRecommendProductStartActionCreator)
try {
const { data } = await axios.get(
"http://123.56.149.216:8080/api/productCollections"
);
dispatch(fetchRecommendProductSuccessActionCreator(data))
// this.setState(
// {
// loading: false,
// error: null,
// productList: data,
// },
// () => {
// console.log(this.state.productList);
// }
// );
} catch (error) {
dispatch(fetchRecommendProductFailActionCreator(error))
// this.setState({
// error: error.message,
// loading: false,
// });
}
};
import {
RecommendProductAction,
FETCH_RECOMMEND_PRODUCTS_FAIL,
FETCH_RECOMMEND_PRODUCTS_START,
FETCH_RECOMMEND_PRODUCTS_SUCCESS,
} from "./recommendProductActions";
interface RecommendProductsState {
productList: any[];
loading: boolean;
error: string | null;
}
const defaultState: RecommendProductsState = {
loading: true,
productList: [],
error: null,
};
// eslint-disable-next-line import/no-anonymous-default-export
export default (state = defaultState, action: RecommendProductAction) => {
switch (action.type) {
case FETCH_RECOMMEND_PRODUCTS_START:
return { ...state, loading: true };
case FETCH_RECOMMEND_PRODUCTS_SUCCESS:
return { ...state, loading: false, productList: action.payload };
case FETCH_RECOMMEND_PRODUCTS_FAIL:
return { ...state, loading: false, error: action.payload };
default:
return state;
}
};
import { createStore ,combineReducers} from "redux";
import { createStore ,combineReducers,applyMiddleware} from "redux";
import languageReducer from "./language/languageReducer";
import CityReducer from './citys/cityReducer'
import recommendProductsReducer from "./recommendProducts/recommendProductsReducer";
import thunk from 'redux-thunk'
const rootReducer = combineReducers({
language:languageReducer,
city:CityReducer
city:CityReducer,
recommendProduct:recommendProductsReducer
})
const store = createStore(rootReducer);
const store = createStore(rootReducer,applyMiddleware(thunk));
export type RootState =ReturnType<typeof store.getState>
export default store;
......@@ -2717,6 +2717,13 @@ axe-core@^4.0.2:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.1.tgz#2e50bcf10ee5b819014f6e342e41e45096239e34"
integrity sha512-evY7DN8qSIbsW2H/TWQ1bX3sXN1d4MNb5Vb4n7BzPuCwRHdkZ1H2eNLuSh73EoQqkGKUtju2G2HCcjCfhvZIAA==
 
axios@^0.21.1:
version "0.21.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
dependencies:
follow-redirects "^1.10.0"
axobject-query@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
......@@ -5271,7 +5278,7 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
 
follow-redirects@^1.0.0:
follow-redirects@^1.0.0, follow-redirects@^1.10.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43"
integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==
......@@ -9987,6 +9994,11 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
 
redux-thunk@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==
redux@^4.0.0, redux@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.0.tgz#eb049679f2f523c379f1aff345c8612f294c88d4"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment