首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应型标- ',‘expected.ts(1005)

反应型标- ',‘expected.ts(1005)
EN

Stack Overflow用户
提问于 2019-12-02 16:26:57
回答 1查看 13.1K关注 0票数 2

我正在使用Typescript在一个React应用程序与Graphql

我收到一个错误:

',‘expected.ts(1005)

我发现的唯一答案是打字本过时了,但我用的是3.7.2

代码语言:javascript
复制
user@3df41 ~/Desktop/34534/client (master) $ tsc -v
Version 3.7.2
user@3df41 ~/Desktop/34534/client (master) $    

错误发生在data.recipe.map(recipe =>

代码语言:javascript
复制
import React from 'react';
import './App.css';

import { useQuery } from 'react-apollo-hooks';
import { GET_ALL_RECIPES } from '../queries';
import { RecipeData } from '../generated/RecipeData';

const App: React.FC = () => {

  const { data, loading } = useQuery<RecipeData | null>(GET_ALL_RECIPES, {
    suspend: false
  })

  if (loading || !data) return <div>Loading</div>

  return (
    <div className="App">
      <ul>
        if(RecipeData.recipe !== null){
          {
            data.recipe.map(recipe =>
              <li>{recipe.name}</li>
            )
          }
        }
      </ul>
    </div>
  );
}

export default App;

package.json:

代码语言:javascript
复制
{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@types/jest": "24.0.23",
    "@types/node": "12.12.14",
    "@types/react": "16.9.13",
    "@types/react-dom": "16.9.4",
    "apollo": "^2.21.1",
    "apollo-boost": "^0.4.4",
    "apollo-cache-inmemory": "^1.6.3",
    "apollo-client": "^2.6.4",
    "apollo-link-http": "^1.5.16",
    "react": "^16.12.0",
    "react-apollo": "^3.1.3",
    "react-apollo-hooks": "^0.5.0",
    "react-dom": "^16.12.0",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.2.0",
    "typescript": "^3.7.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "apollo:generate": "apollo codegen:generate --target typescript --excludes=node_modules/* --includes=**/*.tsx --endpoint http://localhost:4000 --tagName=gql --outputFlat src/generated"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}
EN

回答 1

Stack Overflow用户

发布于 2019-12-02 17:27:26

您不能将语句放在JSX大括号中,只有表达式。可以用内联&&表达式替换if语句。

代码语言:javascript
复制
  return (
    <div className="App">
      <ul>
        {
          RecipeData.recipe !== null && data.recipe.map(recipe =>
            <li>{recipe.name}</li>
          )
        }
      </ul>
    </div>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59142974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档