16 Functional Stateless Components

vi src/Contact.js

import React from 'react';

const Contact = ({contact,item}) =>

            <ul>
            <li> {contact.name} {contact.phone} {item}</li>
            </ul>

export default Contact;

vi src/ContactsList.js

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

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

     }
     addContact(event){
        event.preventDefault();
        let name=this.refs.name.value;
        let phone= this.refs.phone.value;
        let id = Math.floor((Math.random()*100)+1);
        console.log(this.refs.name.value);
        this.setState({
            contacts: this.state.contacts.concat({id,name,phone})
        })
        this.refs.name.value = '';
        this.refs.phone.value = '';
     }
    render(){
        let filteredContacts = this.state.contacts.filter(
            (contact) => {
                return contact.name.toLowerCase().indexOf(this.state.search.toLowerCase())!= -1;
            }
            );
         console.log(this.props.contacts);

        return(
            <div>
            <input type="text" 
            placeholder ="search Name"
            value={this.state.search}
            onChange={this.updateSearch.bind(this)}
            />
            <form onSubmit={this.addContact.bind(this)}>
            <input type="text" ref="name" />
            <input type="text" ref="phone" />
            <button type="submit" > Add New Contact</button>

            </form>

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


            </ul>

            </div>
            )
    }
}
export default ContactsList;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值