React训练小demo

掉demo,点击取反重新赋值,
React训练小demo_第1张图片

import React, {Component} from 'react'
import '../Todemo/Tododemo.less'
import Storage from '../../puble/Storage'

class Tododemo extends Component {
    constructor(props) {
        super(props);
        this.state = { 
            msg:'demo案例演示',
            list:[
                {
                    title:'你是狗',
                    checked:true
                },
                {
                    title:'你是猪',
                    checked:true
                },
                {
                    title:'你是猫',
                    checked:false
                },
                {
                    title:'你是驴',
                    checked:true
                },
            ],
         };
    }
    setData=(e)=>{

        if(e.keyCode ===13 && this.refs.input_value.value!==''){
            var temlist = this.state.list;
            var cty = this.refs.input_value.value
            temlist.push({
                title:cty,   // 前面数组里面的值,后面input的value。
                checked:false  // 默认设置false。
            });
            this.refs.input_value.value ='';  // 回车后,输入框为空。
            this.setState({
                list:temlist    //原始的list等于 当前更换新的temlist/list
            })
             //缓存数据,localStorage只能存字符串,需要把对象转化为字符串。
            // localStorage.setItem('list',JSON.stringify(temlist))//设置存储数据
              Storage.set('list',temlist);  // 封装localStorage

         }else{
            console.log('不能为空')
        }
    }
    Deleted =(key)=>{
        // alert(key)
        var temlist = this.state.list;
        temlist.splice(key,1)
        // 删除完重新赋值
        this.setState({
            list:temlist
        })
        //缓存数据,localStorage只能存字符串,需要把对象转化为字符串。
        //localStorage.setItem('list',JSON.stringify(temlist))//设置存储数据
          Storage.set('list',temlist); // 封装localStorage
    }
    inputchecked =(key)=>{
        var hobby = this.state.list;
        hobby[key].checked =!hobby[key].checked; // 点击checked取反。
        // 重新赋值。
        this.setState({
            hobby:hobby
          })
           //缓存数据,localStorage只能存字符串,需要把对象转化为字符串。
           //localStorage.setItem('list',JSON.stringify(hobby)) //设置存储数据
           Storage.set('list',hobby); // 封装localStorage
    }
    //生命周期,页面加载就会触发、
    componentDidMount(){
        //var todolist = JSON.parse(localStorage.getItem('list'));//获取存储数据
        var todolist = Storage.get('list'); // 封装localStorage
        if(todolist){
            this.setState({
                list:todolist
            })
        } 
    }

    render() {
        return (
            

{this.state.msg}


进行中

{/* { this.state.list.map((item,key)=>{ return(

{item} -------

) }) } */} { this.state.list.map((item,key)=>{ if(!item.checked){ return(

{item.title} -------

) } }) }

已完成

{ this.state.list.map((item,key)=>{ if(item.checked){ return(

{item.title} -------

) } }) }
); } } export default Tododemo;

封装localStorage 模块化

var Storage={
    set(key,vaule){
        localStorage.setItem(key,JSON.stringify(vaule));
    },
    get(key){
       return JSON.parse(localStorage.getItem(key)); 
    },
    remove(key){
        localStorage.removeItem(key);
    }
};
export default Storage;

你可能感兴趣的:(react)