我在以下两个函数中都具有强大的业务逻辑,但遇到了一个问题。我知道它与关闭有关,但是我不知道如何解决。你可以通过一些光线吗?
<TextField
className={classes.TextField}
id="input-with-icon-textfield"
label="Zoeken"
InputProps={{
startAdornment: (
<InputAdornment position="start">
<Search />
</InputAdornment>
),
}}
onChange={(e) => {this.setTextFilter(e.target.value);}}
/>
我原来的问题如下
function func1() {
var x = false;
console.log('before going inside func '+x);
func2(x);
console.log('After coming outside => '+x);
//Instead of true its displaying false
}
function func2(x)
{
x = true;
console.log('inside func => '+ x);
}
func1();
答案 0 :(得分:1)
Vue.component('greeting', {
props: ['name'],
template: '<h1>Welcome {{ name }} !</h1>',
mounted () {
setTimeout(() => {
this.$emit('some-event')
}, 2000)
}
});
Vue.component('other-component', {
template: '<h1>Welcome to Other Component</h1>'
})
// create a new Vue instance and mount it to our div element above with the id of app
var vm = new Vue({
el: '#app',
data: {
componentToUse: 'greeting'
},
methods: {
handleOtherComponentEvent () {
console.log('Hello World from other component listener')
},
handleGreetingComponentEvent () {
console.log('Hello World from greeting component event listener')
}
},
computed: {
listeners () {
if (this.componentToUse === 'greeting') {
return {
'some-event': this.handleOtherComponentEvent
}
} else if (this.componentToUse === 'other-component') {
return {
'some-greeting-event': this.handleGreetingComponentEvent
}
}
return {}
},
attributes () {
if (this.componentToUse === 'greeting') {
return {
'name': 'Hammerbot'
}
}
return {}
}
}
});
的{{1}}参数与x
中的func2
变量完全不同。当您执行x
时,func1
的值将传递给func2(x)
,而不是对变量的某种引用。 (某些语言可以做到这一点; JavaScript不能。)
要从函数中返回信息,请在函数中使用x
,并在调用它的位置使用函数的返回值:
func2
使用return
中的function func1() {
var x = false;
console.log('before ' + x);
x = func2(x); // *** Note `x =`
console.log('after ' + x);
}
function func2(x) {
return true;
}
func1();
的值也许是一个更好的示例:
x
如果您要返回复杂信息,请返回一个具有复杂信息属性的对象(或传递一个对象,并在其上填充func2
属性,这取决于用例[以及是否'坚持不变性范例)。