Reactjs 变量超出范围
我是个新手,我已经为Jupyter小部件创建了一个HelloWorld应用程序。一切正常,但是,我无法理解为什么变量Reactjs 变量超出范围,reactjs,typescript,Reactjs,Typescript,我是个新手,我已经为Jupyter小部件创建了一个HelloWorld应用程序。一切正常,但是,我无法理解为什么变量视图无法在我的clickHandler函数中访问,即使在应用程序渲染时视图可以在componentDidMount函数中访问。是否有方法从clickHandler函数访问全局变量视图 export class ExampleView extends DOMWidgetView { initialize(){ const view = this; interfac
视图
无法在我的clickHandler
函数中访问,即使在应用程序渲染时视图
可以在componentDidMount
函数中访问。是否有方法从clickHandler
函数访问全局变量视图
export class ExampleView extends DOMWidgetView {
initialize(){
const view = this;
interface AppProps{
}
interface AppState{
value:any
}
class Hello extends React.Component<AppProps,AppState> {
constructor(props:any){
super(props);
this.state = {
value: view.model.get("value")
}
this.clickHandler = this.clickHandler.bind(this);
}
onChange(model:any){
this.setState(model.changed);
}
componentDidMount(){
view.listenTo(view.model,"change",this.onChange.bind(this));
}
render(){
return <div><h1>Hello {this.state.value}</h1><button onClick={this.clickHandler}>Submit</button></div>
}
clickHandler(){
console.log("clicked")
// this.state = {value:"set to something else"}
this.setState(state => ({
value: "something else"
}));
console.log(view) // VM1302:1 Uncaught ReferenceError: view is not defined
}
}
const $app = document.createElement("div");
const App = React.createElement(Hello);
ReactDOM.render(App,$app);
view.el.append($app);
}
}
导出类ExampleView扩展了DOMWidgetView{
初始化(){
const view=this;
接口AppProps{
}
接口应用状态{
价值:任何
}
类Hello扩展了React.Component{
构造器(道具:任何){
超级(道具);
此.state={
值:view.model.get(“值”)
}
this.clickHandler=this.clickHandler.bind(this);
}
onChange(型号:任意){
此.setState(型号已更改);
}
componentDidMount(){
view.listenTo(view.model,“change”,this.onChange.bind(this));
}
render(){
返回Hello{this.state.value}提交
}
clickHandler(){
console.log(“单击”)
//this.state={value:“设置为其他对象”}
this.setState(state=>({
价值:“其他东西”
}));
console.log(视图)//VM1302:1未捕获引用错误:未定义视图
}
}
const$app=document.createElement(“div”);
const App=React.createElement(Hello);
render(App,$App);
view.el.append($app);
}
}
我从未见过像TypeScript或React中那样嵌套的类。您是否可以取消它并将视图
作为道具传递到Hello组件?您是否正在使用transpiling组件来传输代码?这可能是一个与透明有关的问题。