14 Building A Search Filter

本文介绍了一个使用React实现的联系人列表组件,该组件具备搜索过滤功能,通过输入框实时更新搜索条件,并显示匹配的联系人信息。

vi src/ContactsList.js

import React from 'react';
import Contact from './Contact';
class ContactsList extends React.Component{
     constructor(){
        super();
        this.state ={
            search:''
        };
     }

     updateSearch(event){
        // console.log(event.target.value);
        this.setState({search:event.target.value.substr(0,20)});

     }
    render(){
        let filteredContacts = this.props.contacts.filter(
            (contact) => {
                return contact.name.toLowerCase().indexOf(this.state.search.toLowerCase())!= -1;
            }
            );
         console.log(this.props.contacts);

        return(
            <div>
            <input type="text" 
            value={this.state.search}
            onChange={this.updateSearch.bind(this)}
            />

            <ul>
            {filteredContacts.map((contact)=>{
                return <Contact  contact={contact} key={contact.id}/>
            })}


            </ul>

            </div>
            )
    }
}
export default ContactsList;

这里写图片描述

复杂几何的多球近似MATLAB类及多球模型的比较 MATLAB类Approxi提供了一个框架,用于使用具有迭代缩放的聚集球体模型来近似解剖体积模型,以适应目标体积和模型比较。专为骨科、生物力学和计算几何应用而开发。 MATLAB class for multi-sphere approximation of complex geometries and comparison of multi-sphere models 主要特点: 球体模型生成 1.多球体模型生成:与Sihaeri的聚集球体算法的接口 2.音量缩放 基于体素的球体模型和参考几何体的交集。 迭代缩放球体模型以匹配目标体积。 3.模型比较:不同模型体素占用率的频率分析(多个评分指标) 4.几何分析:原始曲面模型和球体模型之间的顶点到最近邻距离映射(带颜色编码结果)。 如何使用: 1.代码结构:Approxi类可以集成到相应的主脚本中。代码的关键部分被提取到单独的函数中以供重用。 2.导入:将STL(或网格)导入MATLAB,并确保所需的函数,如DEM clusteredSphere(populateSpheres)和inpolyhedron,已添加到MATLAB路径中 3.生成多球体模型:使用DEM clusteredSphere方法从输入网格创建多球体模型 4.运行体积交点:计算多球体模型和参考几何体之间的基于体素的交点,并调整多球体模型以匹配目标体积 5.比较和可视化模型:比较多个多球体模型的体素频率,并计算多球体模型与原始表面模型之间的距离,以进行2D/3D可视化 使用案例: 骨科和生物力学体积建模 复杂结构的多球模型形状近似 基于体素拟合度量的模型选择 基于距离的患者特定几何形状和近似值分析 优点: 复杂几何的多球体模型 可扩展模型(基于体素)-自动调整到目标体积 可视化就绪输出(距离图)
你遇到的问题是: ```bash E: Unable to locate package filter-repo ``` 这说明 `apt-get` 无法找到名为 `filter-repo` 的包。这是因为 **`filter-repo` 并不是一个存在于 Ubuntu 官方仓库中的二进制包名称**,而它的正确项目名或安装方式不同。 --- ## ✅ 正确解决方案:`git-filter-repo` 的安装方法 `git-filter-repo` 是一个由 GitHub 开源的工具,用于重写 Git 历史(替代老旧的 `git filter-branch` 和 BFG)。它 **不是通过 `apt` 直接安装的 `filter-repo` 包**,而是需要通过以下方式之一安装。 --- ### ✅ 方法一:使用 `pip3` 安装(推荐) `git-filter-repo` 是用 Python 编写的,官方推荐使用 `pip` 安装。 #### 1. 安装 pip(如果没有) ```bash sudo apt update sudo apt install python3-pip -y ``` #### 2. 使用 pip3 安装 git-filter-repo ```bash pip3 install git-filter-repo ``` > 注意:命令安装后为 `git-filter-repo`(带连字符),而不是 `filter-repo` #### 3. 验证是否安装成功 ```bash git-filter-repo --version ``` 输出类似: ``` git-filter-repo 2.45.0 ``` ✅ 成功! --- ### ✅ 方法二:从 GitHub 克隆并手动安装(适用于离线环境) ```bash cd /tmp git clone https://github.com/newren/git-filter-repo.git sudo cp git-filter-repo/git-filter-repo /usr/local/bin/ sudo chmod +x /usr/local/bin/git-filter-repo ``` 验证: ```bash git-filter-repo --version ``` --- ### ❌ 为什么 `sudo apt-get install filter-repo` 不行? - 包名错误:正确的工具名是 `git-filter-repo`,不是 `filter-repo` - 即使搜索 `git-filter-repo`,Ubuntu 官方仓库也 **默认不包含这个包**(尤其在较老版本中) - 所以不能靠 `apt` 直接安装 你可以验证一下: ```bash apt search git-filter-repo ``` 很可能返回空结果。 --- ## 🔧 使用示例:`git-filter-repo` 能做什么? 删除某个大文件的历史记录: ```bash git-filter-repo --path large-file.zip --invert-paths ``` 重命名所有作者: ```bash git-filter-repo --commit-callback ' if commit.author_email == b"old@example.com": commit.author_name = b"New Name" commit.author_email = b"new@example.com" ' ``` --- ## ✅ 总结 | 问题 | 解决方案 | |------|----------| | `E: Unable to locate package filter-repo` | 包名错误,应使用 `pip3 install git-filter-repo` | | 如何安装 `git-filter-repo` | 推荐使用 `pip3 install git-filter-repo` | | 安装后命令是什么? | 使用 `git-filter-repo`(注意全名) | --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值