我有,我想從一個子組件更新父組件的狀態如下一個非常簡單的應用:反應的組分之間的setState ES6
import React from '../../../../../../../dependencies/node_modules/react';
import ReactDOM from '../../../../../../../dependencies/node_modules/react-dom';
class CalendarMain extends React.Component {
constructor() {
super();
}
handleClick() {
this.props.handleStateClick("State Changed");
}
render() {
return (
<div>
<div className="calendar">
{this.props.checkIn}
<button onClick={ this.handleClick.bind(this) }>Click Me</button>
</div>
</div>
)
}
}
class CalendarApp extends React.Component {
constructor() {
super();
this.state = {
checkIn: "Check-in",
checkOut: "Check-out",
dateSelected: false
};
}
handleStateClick(newState) {
this.setState({
checkIn: newState
});
}
render() {
return (
<div>
<CalendarMain
checkIn = { this.state.checkIn }
handleStateClick = { this.handleStateClick.bind(this) }
/>
</div>
);
}
}
我收到的錯誤是this.setState is not a function
可以和我沒有解決原因。任何幫助將非常感激!
確保你不會在別處意外地突變'this.setState'。即:'this.setState = {foo:'bar'};' – Kujira
只需注意'../../ ..'...確保相對路徑保持在您的項目中,否則移動項目(上傳到遠程,在github上發佈/ npm,無論如何)都可能破壞這些路徑。 –
您可能想重新考慮您的項目層次結構 –