Javascript “如何修复”;应在箭头函数“中返回一个值”;用reactjs?
我的react应用程序组件中有两个功能Javascript “如何修复”;应在箭头函数“中返回一个值”;用reactjs?,javascript,reactjs,object,eslint,arrow-functions,Javascript,Reactjs,Object,Eslint,Arrow Functions,我的react应用程序组件中有两个功能 componentDidMount() { if(Object.keys(this.props.praticiens).length>0) Object.keys(this.props.praticiens).map((praticien) => { if(this.props.praticiens[praticien].identifiant_user === getUr
componentDidMount() {
if(Object.keys(this.props.praticiens).length>0)
Object.keys(this.props.praticiens).map((praticien) => {
if(this.props.praticiens[praticien].identifiant_user === getUrlParams(window.location.hash).identifiant_user)
this.setState({
praticien:this.props.praticiens[praticien].id_user
})
})
}
handleChangePraticien = (praticien) => {
this.setState({ praticien }, () => {
Object.keys(this.props.praticiens).map((praticien) => {
if(this.state.praticien === this.props.praticiens[praticien].id_user)
this.props.selectPraticienFunction(this.props.praticiens[praticien].identifiant_user);
})
})
}
当我运行它时,我得到:
Line 26:64: Expected to return a value in arrow function array-callback-return
Line 36:64: Expected to return a value in arrow function array-callback-return
例如,第26行开始于componentDidMount上的Object.keys(this.props.praticins).map((praticin)=>{,第36行是HandleChangePraticin函数上的同一行
如何修复它?您正在使用它。除非您要使用它从回调的返回值创建的数组,否则不要使用map
。请使用forEach
、for of
,或者使用中描述的许多其他方法循环数组
第26:64行:应在arrow函数数组回调返回中返回值
由于您不关心从arrow函数返回值,也不使用map()
返回的数组,因此应该使用forEach()
函数
componentDidMount() {
if(Object.keys(this.props.praticiens).length>0)
Object.keys(this.props.praticiens).forEach((praticien) => {
if(this.props.praticiens[praticien].identifiant_user === getUrlParams(window.location.hash).identifiant_user)
this.setState({
praticien:this.props.praticiens[praticien].id_user
})
})
}
handleChangePraticien = (praticien) => {
this.setState({ praticien }, () => {
Object.keys(this.props.praticiens).forEach((praticien) => {
if(this.state.praticien === this.props.praticiens[praticien].id_user)
this.props.selectPraticienFunction(this.props.praticiens[praticien].identifiant_user);
})
})
Array.prototype.forEach()和Array.prototype.map()用于两种不同的用途
- Array.prototype.forEach()
Array.prototype.forEach用于简单地循环数组的项,但不返回任何特殊值。其签名为:
forEach(回调,[thisArg])=>未定义
只有第一个参数callback
是必需的,其签名是(当前[,索引,数组])=>void
,其中唯一需要的参数是current
范例
- Array.prototype.map()
此函数主要用于从另一个数组创建新的数组
。与forEach
函数不同,它返回一个数组
。其签名如下:
forEach(回调[,thisArg])=>Array
。
就像forEach
,只有第一个参数是必需的,但回调符号不同:(当前[,索引,数组])=>any
。
最后一个数组将包含每次迭代后回调返回的每个值
范例
更多信息请参见:
将{}改为()对我来说很有效
从map(()=>{})
到map(()=>())
您的if语句需要括号{}
。只有当if语句中的行是单行时,才能删除它们。@blackgigant-单行语句,而不是单行。它们都是单行语句。(也就是说,我更喜欢总是使用{}
关于控制流statmenets。)感谢您的解释
[1,2,3].forEach( item => console.log(item))
// Output 1 2 3 undefined
[1,2,3].map(item => item ** 2)
// Output [1 4 9]