Javascript React.js,this.props.changeTitle不是一个函数
我正在尝试使用React、ES6、Webpack和Babel创建一个标题和下面的文本框。当我们在文本框中键入时,标题的内容将更改/重新呈现。Javascript React.js,this.props.changeTitle不是一个函数,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我正在尝试使用React、ES6、Webpack和Babel创建一个标题和下面的文本框。当我们在文本框中键入时,标题的内容将更改/重新呈现。 主要有两个文件,Header.js和app.js //app.js 从“React”导入React; 从“react dom”导入react dom; 从“/Header/Header”导入标题; 导出默认类App扩展React.Component { 构造函数() { 超级(); this.state=({title:“Welcome”}); } cha
主要有两个文件,Header.js和app.js //app.js
从“React”导入React;
从“react dom”导入react dom;
从“/Header/Header”导入标题;
导出默认类App扩展React.Component
{
构造函数()
{
超级();
this.state=({title:“Welcome”});
}
changeTitle(新标题)
{
this.setState({title:newtitle});
}
手变(e)
{
常量输入=e.target.value;
this.props.changeTitle(输入);
}
render()
{
返回(
);
}
}
常量元素=document.getElementById('app');
render(,元素);
======================================================
//Header.js
从“React”导入React;
从“react dom”导入react dom;
导出默认类标头扩展React.Component
{
render()
{
返回(
{this.props.title}
);
}
}
如果我将handleChange(e)方法和标记行从app.js移动到Header.js,那么它可以正常工作,但否则我会得到错误,即“this.props.changetTitle不是函数”,它位于handleChange(e)方法内部 在渲染
ReactDOM.render(,元素)时,不会将名为changetTitle的道具传递给
代码>
看起来您只是想要this.changetTitle
而不是this.props.changetTitle
在渲染ReactDOM.render(,元素)时,不会将名为changetTitle的道具传递给
代码>
看起来您只是想要this.changetTitle
而不是this.props.changetTitle无需将函数changetTitle()
传递给
只需调用handleChange()
调用this.setState()
handleChange(e)
{
常量输入=e.target.value;
this.setState({title:input});
}
render()
{
返回(
);
}
React将重新加载
,而这反过来将重新加载()无需将函数changetTitle()
传递给
只需调用this.setState()
handleChange(e)
{
常量输入=e.target.value;
this.setState({title:input});
}
render()
{
返回(
);
}
React将重新启动
,这反过来将重新启动()
如果有人正确回答了您的问题,请单击答案旁边的空复选标记将其标记为正确。否则,请更新问题。1.5年后多么令人惊喜啊哈哈哈。永远不要放弃希望如果有人正确回答了你的问题,请单击答案旁边的空复选标记将其标记为正确。否则,请更新问题。1.5年后多么令人惊喜啊哈哈哈。永远不要放弃希望
import React from "react";
import ReactDOM from "react-dom";
import Header from "./Header/Header";
export default class App extends React.Component
{
constructor()
{
super();
this.state = ({title: "Welcome"});
}
changeTitle(newtitle)
{
this.setState({title: newtitle});
}
handleChange(e)
{
const input = e.target.value;
this.props.changeTitle(input);
}
render()
{
return(
<div>
<Header changeTitle = {this.changeTitle.bind(this)} title = {this.state.title}/>
<input onChange={this.handleChange.bind(this)} />
</div>
);
}
}
const element = document.getElementById('app');
ReactDOM.render(<App/>,element);
======================================================
//Header.js
import React from "react";
import ReactDOM from "react-dom";
export default class Header extends React.Component
{
render()
{
return(
<div>
<h1>{this.props.title}</h1>
</div>
);
}
}
handleChange(e)
{
const input = e.target.value;
this.setState({title: input});
}
render()
{
return(
<div>
<Header title = {this.state.title}/>
<input onChange={this.handleChange.bind(this)} />
</div>
);
}