首页 > 解决方案 > 如何为特定对象增加价值?

问题描述

大家好,我有一个让我头疼的问题。我会尽可能具体地分解这个

在此处输入图像描述

事实:[{"type":"engine_size", "text":"User Input"}]

 state = {
   controls: {
     facts: [{ type: "", text: "" }],
   },
 };


   <View style={styles.inputContainer}>
           <Text style={{ color: "white", marginTop: 10 }}> Engine Size 
           </Text>
           <IconInputField
             value={this.state.controls.facts.map(item => ({
               type: "engine_size",
               text: item.text
             }))}
             onChange={this.factsAddedHandler}
             icon={require("../../assets/img/motor.png")}
           />
         </View>

标签: javascriptreact-native

解决方案


您可以将数组转换为对象

const facts = [{"type":"engine_size", "text":"User Input"}];
const newFacts= facts.reduce((accumulator, currentValue) => (accumulator[currentValue.type] = currentValue.text, accumulator), {});

console.log(newFacts)

然后像这样为图像创建一个对象映射:

const images = {
  engine_size: "../../assets/img/motor.png"
  ...
}

确保您确切知道从 api 返回的数据是什么样的,因为“engine_size”是硬编码。然后您可以访问您的数据,如下所示

<IconInputField
  value={newFacts["engine_size"]}
  onChange={this.factsAddedHandler}
  icon={require(images["engine_size"])}
/>

推荐阅读