美文网首页
JSX在运行时选择类型

JSX在运行时选择类型

作者: JamesSawyer | 来源:发表于2018-08-06 17:10 被阅读18次

不能使用一个普通的表达式作为React元素类型。如果想要使用普通表达式来表示元素类型,首先需要将其赋值给大写的变量

这通常会出现在根据不同的props渲染不同组件时:

import React from 'react';
import { PhotoStory, VideoStory } from './stories';

const components = {
  photo: PhotoStory,
  video: VideoStory
};

function Story(props) {
  // 错误, JSX类型不能是表达式
  return <components[props.storyType] story={props.story} />
}

为了解决这个问题,首先需要将表达式赋值给一个以大写字母开头的变量:

import React from 'react';
import { PhotoStory, VideoStory } from './stories';

const components = {
  photo: PhotoStory,
  video: VideoStory
};

function Story(props) {
  // 正确!JSX 类型可以是一个以大写字母开头的变量.
  const SpecificStory = components[props.storyType];
  return <SpecificStory story={props.story} />;
}

来源:

相关文章

  • JSX在运行时选择类型

    不能使用一个普通的表达式作为React元素类型。如果想要使用普通表达式来表示元素类型,首先需要将其赋值给大写的变量...

  • 第三章.动态类型

    动态类型语言中的类型是在运行时推断的方法及其参数也在运行时接受检查的。 一、Java中的类型 略(介绍Java类型...

  • 【2018最新】iOS面试题(一)

    1.为什么OC是一门动态语言? 动态类型:OC在运行时决定对象的类型,比如id; 动态绑定:程序在运行时判断需要调...

  • Java编程思想(十三) 类型信息

    运行时类型信息使得你可以在程序运行时发现和使用类型信息。 1、为什么需要RTTI 在运行时,识别一个对象的类型。 ...

  • Java 编程思想笔记:Learn 10

    第 14 章 类型信息 运行时类型信息使得你可以在程序运行时发现和使用类型信息 Java 在运行时识别对象和类有两...

  • 为什么说OC是一门动态语言?

    自己理解:OC语言是在运行时才确定类型的,通过Runtime运行时机制,在运行时动态的添加变量,方法,类等,所以说...

  • Java类型信息详解

    类型信息 运行时类型信息使得你可以在程序运行时发现和使用类型信息 本章节将讨论Java是如何让我们在运行时识别对象...

  • 14.类型信息

    RTTI:运行时类型识别运行时类型识别使得你可以在程序运行时发现和使用类型信息在java中,主要有两种方式可以在运...

  • 静态语言,动态语言区别

    类型检查和改变结构 是静态语言和动态语言两个基本区别点动态语言会在运行时对变量的类型进行检查,程序在运行时可以改变...

  • OC动态语言

    1.动态类型: 即运行时再决定对象的类型。简单说就是id类型,任何对象都可以被id指针所指,只有在运行时 才...

网友评论

      本文标题:JSX在运行时选择类型

      本文链接:https://www.haomeiwen.com/subject/pmugvftx.html