组件拆分报错

来源:1-1 组件拆分与组件之间的传值(1)

weixin_慕码人9177259

2020-03-29 13:47:29

TodoList.js代码如下:

import React,{Component,Fragment}from 'react';

import TodoItem from './TodoItem';

import './style.css';//直接引入当前目录下css文件

class TodoList extends Component{

constructor(props) {

super(props);

this.handleChange=this.handleChange.bind(this);

this.handleKeyUp=this.handleKeyUp.bind(this);

this.state={

inputValue:'',//这里state对应了组件的数据内容

list:[]

}

    

}

handleChange(e){

// console.log(e.target.value);

this.setState({

inputValue:e.target.value

})

}

handleKeyUp(e){

// console.log(this);

// console.log(e.keyCode+"ccc");

if(e.keyCode===13&&e.target.value!==''){

const list=[...this.state.list,this.state.inputValue];

this.setState({

list:list,

inputValue:''

})

}

}

getListItems(){

return this.state.list.map((value,index)=>{//箭头函数,this只是搜索父级作用域里的this

return( <TodoItem 

       content={value} 

       key={index}/>

   )

})

}//点击请输入,input框自动聚焦

//jsx语法中不能直接写注释

render(){

//这是js里的一般注释

return(

   <Fragment>

  {/*这是JSX语法里的注释*/}

   <label htmlFor='myinput'>请输入内容:</label>

<input 

id='myinput'

className='input'

value={this.state.inputValue}

onChange={this.handleChange}

onKeyUp={this.handleKeyUp}

/>

<ul>

{this.getListItems()}

</ul>

</Fragment>

)

}

}

export default TodoList;


子组件TodoItem代码如下:

import React,{Component}from 'react';

class TodoItem extends Component{

constructor(props){

super(props);

this.handleItemClick=this.handleItemClick.bind(this);

}

    handleItemClick(){

console.log(this);

}

render(){

const {content}=this.props;

return 

<li onClick={this.handleItemClick}>{content}</li>

}

}

export default TodoItem;

报错如下,请问哪出错了呢?http://img.mukewang.com/climg/5e803650098de0a512660391.jpg

写回答

1回答

好帮手慕慕子

2020-03-29

同学你好,从截图看报错信息是TodoItem.js文件中14行左右存在语法错误,如下所示,return后忘记添加括号了。

http://img.mukewang.com/climg/5e806119093fe86e11440416.jpg

建议:同学添加上括号后在测试下。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 10739 问题

查看课程