当前位置: 首页 > 面试题库 >

React从数组访问值

松翔
2023-03-14
问题内容

我在React中有一个表单,可以动态添加新的输入元素。这似乎
工作正常,但我似乎无法访问此
屏幕截图中所示的输入值…

console.log数组

我尝试了以下

console.log(this.state.telephone.name)

和…

console.log(this.state.telephone.tidx.name)

其中tidx是唯一键。

这是构造函数…

 constructor() {
        super();
        this.state = {
            role: "Installer",
            name: "",
            telephoneType: [{ name: "" }],
            telephone: [{ name: "" }],
            tidx: "",
            emailType: [{ email: "" }],
            email: [{ email: "" }],
            eidx: "",
            notes: ""
        };
    }

and this is my function to handle the input forms…

handleTelephoneChange = tidx => evt => {

        const newTelephone = this.state.telephone.map((telephone, tsidx) => {

            if (tidx !== tsidx) return telephone;
            return { ...telephone, name: evt.target.value };
        });
        this.setState({ telephone: newTelephone }, () => {
            // get state on callback
            console.log(this.state)
            console.log(this.state.telephone.name)
            console.log(this.state.telephone.tidx.name)
        }
        );
    };

and rendered like this…

{this.state.telephone.map((telephone, tidx) => (
<MDBRow key={tidx} className="grey-text flex-nowrap align-items-center no-gutters my-2">
<MDBCol md="12">
<input value={telephone.name} onChange={this.handleTelephoneChange(tidx)}placeholder={`Telephone No. #${tidx + 1}`} className="form-control"/>
</MDBCol>
    </MDBRow>
     ))}

任何建议都将不胜感激,因为我是React表单的新手。谢谢。


问题答案:

telephone 是一个数组,因此您应该使用索引符号。

  console.log(this.state.telephone[tidx].name)

为每个电话呈现相应的电话类型:

{this.state.telephone.map((telephone, tidx) => (
     <MDBRow key={tidx} className="grey-text flex-nowrap align-items-center no-gutters my-2">
        <MDBCol md="12">
            <input value={this.state.telephoneType[tidx].yourValue} onChange={this.defineYourTelephoneTypeEventHandler(tidx)}/>
            <input value={telephone.name} onChange={this.handleTelephoneChange(tidx)}placeholder={`Telephone No. #${tidx + 1}`} className="form-control"/>
        </MDBCol>
      </MDBRow>
 ))}


 类似资料:
  • 我试图从发送到套接字的输入流中检索字节值。我用了很多方法,但它总是给我打印字节数组的地址,而不是它的内容。下面是我的客户端和服务器代码。当一个包从客户端发送到服务器时,服务器实例化一个新的线程来处理连接。所以slaveSocket是我想要使用的套接字。 } } }

  • 我想访问来自该对象数组的ends\u数据。。。但我不能让它工作。输出未定义。请帮帮我。

  • 问题内容: 我试图在React中访问div的宽度和高度样式,但是我遇到了一个问题。这是我到目前为止所得到的: 这可以工作,但是我得到的输出是CSSStyleDeclaration对象,并且在all属性中,我可以为该对象提供所有CSS选择器,但是没有设置它们。它们都设置为空字符串。 这是CSSStyleDecleration的输出是:http : //pastebin.com/wXRPxz5p 非常

  • 问题内容: 我想使用React.js制作一个应用程序。我希望它可以轻松地从外部进行自定义(例如,通过编写用户脚本)。我尝试使用的想法是在根元素状态(如或)中创建一些特殊的属性,以便插件开发人员可以在此处添加一些内容。我的问题是:这是否是一个好方法,是否有Right Way™实现与我的目标相似的目标,最后,插件开发人员将如何使用这些道具? 问题答案: 一种选择是可观察的。基本上,它是一个对象,您可以

  • 我有一个react组件,它加载在路由上 我需要从components构造函数中的url访问一个参数 我该怎么做呢? 我可以这样访问它吗: