Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React.js,this.props.changeTitle不是一个函数_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript React.js,this.props.changeTitle不是一个函数

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

我正在尝试使用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”});
}
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>
        );
}