Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在ReactJS中创建和使用映射_Arrays_Reactjs_Foreach - Fatal编程技术网

Arrays 如何在ReactJS中创建和使用映射

Arrays 如何在ReactJS中创建和使用映射,arrays,reactjs,foreach,Arrays,Reactjs,Foreach,我有一个带有ReactJS前端的Spring Boot应用程序,我正试图找出如何使用语义UI使用从一个输入字段中选择的值来填充另一个输入字段 我想我已经准备好了大部分内容,但我正在试图找出如何根据名称从名称/值对象数组中选择一个值。我还没有完全了解map函数是如何工作的,到目前为止,我看到的示例都是基于索引而不是值来选择的。如何对其进行编码,以便它根据值选择条目 例如,以下是阵列: const productMap = [ {key: 'template_key1', value: 'Pro

我有一个带有ReactJS前端的Spring Boot应用程序,我正试图找出如何使用语义UI使用从一个输入字段中选择的值来填充另一个输入字段

我想我已经准备好了大部分内容,但我正在试图找出如何根据名称从名称/值对象数组中选择一个值。我还没有完全了解map函数是如何工作的,到目前为止,我看到的示例都是基于索引而不是值来选择的。如何对其进行编码,以便它根据值选择条目

例如,以下是阵列:

const productMap = [
  {key: 'template_key1', value: 'Product 1'},
  {key: 'template_key2', value: 'Product 2'},
  {key: 'template_key3', value: 'Product 3'}
}
我有一个在用户选择键时调用的方法:

 handleSelectTemplateChange=(event,{value})=>{
    let item = {...this.state.item};
    item.template = value;

    // how should this be coded?  
    item.product = productMap.getValue(item.template); 

    this.setState({item});
  }

我在现场找到了一个很好的描述

下面是似乎有效的代码:

   item.template = value;
    productMap.map(entry =>{
      if (value === entry.key){
        item.product = entry.value; 
      }
    })
您也可以使用数组查找。最好使用find而不是map/forEach,因为一旦找到所需的产品,就不需要映射所有数组元素

const productMap=[ {key:template_key1,value:Product 1}, {key:template_key2,value:Product 2}, {key:template_key3,value:Product 3}, ]; handleSelectTemplateChange=事件,{value}=>{ 让item={…this.state.item}; item.template=值; const productValue=productMap.findproduct=>product.key==value; item.product=productValue.value; 此.setState{item}; };