Javascript 如何将变量传递到方法';反应的范围是什么?
我在Javascript 如何将变量传递到方法';反应的范围是什么?,javascript,reactjs,Javascript,Reactjs,我在render方法中获得了一个变量abc,希望将变量传递给navigateNext方法。我知道我们可以在外部声明一个全局变量。然而,我想知道是否有一个反应的方法来做这件事 var SelectedTopicPage = React.createClass({ getInitialState: function() { return{ topicPageNo: 0, total_selected_topic_pages: 1 }
render
方法中获得了一个变量abc
,希望将变量传递给navigateNext
方法。我知道我们可以在外部声明一个全局变量。然而,我想知道是否有一个反应的方法来做这件事
var SelectedTopicPage = React.createClass({
getInitialState: function() {
return{
topicPageNo: 0,
total_selected_topic_pages: 1
}
},
navigateBack: function() {
let topicPageNo;
if (this.state.topicPageNo > 0){
topicPageNo = this.state.topicPageNo - 1;
}
else {
topicPageNo = 0;
}
this.setState({topicPageNo : topicPageNo});
},
navigateNext: function() {
let topicPageNo = this.state.topicPageNo + 1;
this.setState({topicPageNo : topicPageNo});
console.log(abc);
},
render: function() {
let topicsID = this.props.topicsID;
let navigateNext = this.navigateNext;
let navigateBack = this.navigateBack;
let topicPageNo = this.state.topicPageNo;
return (
<div>
{this.props.topicPages.filter(function(topicPage) {
return topicPage.topic_no === topicsID; // if condition is true, item is not filtered out
}).map(function (topicPage) {
let abc = topicPage.topic_pages.length;
return (
<div>
<div>
<SelectedTopicPageMarkup headline={topicPage.topic_pages[0].headline} key={topicPage.topic_no}>
{topicPage.topic_pages[topicPageNo].description}
</SelectedTopicPageMarkup>
</div>
<div>
<NextPrevBtn moveNext={navigateNext} moveBack={navigateBack}/>
</div>
</div>
);
})}
</div>
);
}
});
var SelectedTopicPage=React.createClass({
getInitialState:函数(){
返回{
主题页码:0,
所选主题页面总数:1
}
},
导航回退:函数(){
让我们来讨论一下主题;
如果(this.state.topicPageNo>0){
topicPageNo=this.state.topicPageNo-1;
}
否则{
topicPageNo=0;
}
this.setState({topicPageNo:topicPageNo});
},
navigateNext:函数(){
让topicPageNo=this.state.topicPageNo+1;
this.setState({topicPageNo:topicPageNo});
控制台日志(abc);
},
render:function(){
让topicsID=this.props.topicsID;
让navigateNext=this.navigateNext;
让navigateBack=this.navigateBack;
让topicPageNo=this.state.topicPageNo;
返回(
{this.props.topicPages.filter(函数(topicPages)){
return topicPage.topic\u no===topicsID;//如果条件为true,则不会筛选出项
}).map(功能(主题页){
设abc=topicPage.topic\u pages.length;
返回(
{topicPage.topic_pages[topicPageNo].description}
);
})}
);
}
});
将abc
作为navigateNext
函数的输入参数。(旁白:请给它起一个比abc更好的名字。)
现在在定义函数回调时使用它:
<NextPrevBtn moveNext={this.navigateNext.bind(this, abc)} moveBack={this.navigateBack}/>
<NextPrevBtn moveNext={this.navigateNext.bind(this, abc)} moveBack={this.navigateBack}/>
}).map(function (topicPage) {
let abc = topicPage.topic_pages.length;
return (
/* etc */
);
}.bind(this))}