将状态作为参数传递给 switch

Posted

技术标签:

【中文标题】将状态作为参数传递给 switch【英文标题】:Pass state as arguments to switch 【发布时间】:2019-12-20 10:04:41 【问题描述】:

我有多个值要显示在组件中,但一次只能显示 1 个值。所以在这种情况下,valueOne 是真的,我想在 switch 语句中使用它来返回值。我将创建一个div 来显示值。

如何将this.state 中的值作为switch 中的参数传递?

这是正确的方法吗?我不能使用三元运算符,因为我可能有超过 2 个值。我将添加一个回调来关闭可见的 div,并将 this.state 中的该值设为 false,并将该值之后的设为 true 以在 DOM 中列出。但是我该怎么做呢?

import React,  Component  from 'react';

    const one = () => 
        return(
            <div>
                <p> This is One</p>
            </div>
        )
    

    class Component extends React.Component
       state = 
         value: 'one'
    

    renderSelected = () => 
      switch(this.state.value)
        case 'one' : return <div>one</div>
        default : return null
      
    

    render()
      return <div className='main'>this.renderSelected()</div>
    


export default MyComp;

这里我收到let questOne = this.state 的解析错误

【问题讨论】:

【参考方案1】:

将逻辑包装在一个函数中并从render调用它

class Component extends React.Component
    state = 
        value: 'one'
    

    renderSelected = () => 
        switch(this.state.value)
            case 'one' : return <div>1</div>
            default : return null
        
    

    render()
        return <div className='main'>this.renderSelected()</div>
    

【讨论】:

谢谢。我理解这里的逻辑。我在类外添加了一个常量,我想在开关的返回中使用它。但我得到一个解析错误。我编辑了这个问题。你能看一下吗。非常感谢。 @杜波卡斯 你把一个变成了一个组件,所以你应该把第一个字母大写,然后像&lt;One /&gt;一样调用它或者将jsx分配给const one

以上是关于将状态作为参数传递给 switch的主要内容,如果未能解决你的问题,请参考以下文章

将状态作为参数传递给环处理程序?

将列表作为参数传递给 Python C 模块?

为啥我们将字符串数组作为参数传递给 main() 方法,为啥不传递任何集合类型或包装类型或原始类型?

将组合框作为参数传递给表单

MVC - 将整个模型作为参数传递给 JavaScript 中的 Url.Action

如何将具有多个对象的状态数组作为参数传递给graphql突变?