Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Javascript 当映射到一组对象时,如何高亮显示多个项目?_Javascript_Arrays_Reactjs_React Native - Fatal编程技术网

Javascript 当映射到一组对象时,如何高亮显示多个项目?

Javascript 当映射到一组对象时,如何高亮显示多个项目?,javascript,arrays,reactjs,react-native,Javascript,Arrays,Reactjs,React Native,我试图找出如何突出显示多个被选中的对象,或者更好地调用我在代码中插入的复选标记。我的点心在这里: 具体映射如下: const ContactRow = React.memo( ({ onPress, name, email, phone, selected }: ContactRowProps) => { return ( <TouchableHighlight onPress={onPress}> <View

我试图找出如何突出显示多个被选中的对象,或者更好地调用我在代码中插入的复选标记。我的点心在这里:

具体映射如下:

const ContactRow = React.memo(
  ({ onPress, name, email, phone, selected }: ContactRowProps) => {
    return (

      <TouchableHighlight onPress={onPress}>
        <View
          style={{ padding: 16, flexDirection: 'row', alignItems: 'center' }}>
             <Text style={{ marginRight: 16 }}>{selected ? '✅' : '⭕️'}</Text>
            <View style={{ flex: 1 }}>
              <Text>{name}</Text>
              {name.length > 0 && (
                <View>
                <Text style={{ marginTop: 4, color: '#666' }}>
                  {email}
                </Text>
                <Text style={{ marginTop: 4, color: '#666' }}>
                  {phone}
                </Text>
                </View>
              )}
            </View>
          </View>
      </TouchableHighlight>

          );
      }
    );
const ContactRow=React.memo(
({onPress、姓名、电子邮件、电话、所选内容}:ContactRowProps)=>{
返回(
{被选中?'✅' : '⭕️'}
{name}
{name.length>0&&(
{email}
{电话}
)}
);
}
);

我正在从手机中提取联系人,然后将其映射为列表。我可以选择多个项目,并在按钮中传递要呈现的号码,但我希望它们切换到复选标记或更改颜色,以帮助用户。

我注意到您没有将“选定”道具传递给ContactRow

<ContactRow
    onPress={ ()=> this.addSelectedContact({id: contact.name,name: contact.name, email:contact.email, phone:contact.phone}) }
    name={ contact.name } 
    emailOrNumber={ contact.email || contact.phone }
/>
this.addSelectedContact({id:contact.name,name:contact.name,email:contact.email,phone:contact.phone})
name={contact.name}
emailOrNumber={contact.email | | contact.phone}
/>
改为

<ContactRow
    onPress={ ()=> this.addSelectedContact({id: contact.name,name: contact.name, email:contact.email, phone:contact.phone}) }
    name={ contact.name } 
    emailOrNumber={ contact.email || contact.phone }
    selected={Boolean(this.state.selectedContacts.find(item => item.name === contact.name && item.phone === contact.phone)}
/>
this.addSelectedContact({id:contact.name,name:contact.name,email:contact.email,phone:contact.phone})
name={contact.name}
emailOrNumber={contact.email | | contact.phone}
selected={Boolean(this.state.selectedContacts.find(item=>item.name==contact.name&&item.phone==contact.phone)}
/>

是的,我不知道如何正确地传递和访问它。我已经从这里整理出了代码,并对其进行了修改以满足我的需要,这是我遇到的最后一个问题之一with@LoF10,刚刚更新了答案。我还没有测试,但是类似的东西你可以通过。实现了,运行良好,只是缺少一个括号,谢谢!