“如何度过难关”;应为赋值或函数调用,而应为表达式;错误Javascript
这里是Total React Noob,只是尝试在数组中的所有标题下加下划线,并向它们添加onclick函数,但我一直收到“预期的赋值或函数调用,而不是看到表达式”错误,我做错了什么“如何度过难关”;应为赋值或函数调用,而应为表达式;错误Javascript,javascript,reactjs,Javascript,Reactjs,这里是Total React Noob,只是尝试在数组中的所有标题下加下划线,并向它们添加onclick函数,但我一直收到“预期的赋值或函数调用,而不是看到表达式”错误,我做错了什么 const result_html = []; const link_underline = { color: 'blue', textDecoration: 'underline', cursor: 'pointer' }; for (let result of
const result_html = [];
const link_underline = {
color: 'blue',
textDecoration: 'underline',
cursor: 'pointer'
};
for (let result of props.results) {
result_html.push(<li key={result.job_id.raw}>{result.business_title.raw}</li>);
result_html.push(<li key={result.job_id.raw}>{result.job_description.raw}</li>);
result_html.push(<li key={result.job_id.raw}>{result.preferred_skills.raw}</li>);
<span style={link_underline} onClick={result.job_id.raw}>{result.business_title.raw}</span>
}
return (
<main className="main main--details">
<h2>Results:</h2>
<ul>
{result_html}
</ul>
<div>
</div>
</main>
);
}
const result_html=[];
常量链接\u下划线={
颜色:“蓝色”,
text装饰:“下划线”,
光标:“指针”
};
for(让道具的结果。结果){
result_html.push({result.business_title.raw} );
result_html.push({result.job_description.raw} );
result_html.push({result.preferred_skills.raw} );
{result.business_title.raw}
}
返回(
结果:
{result_html}
);
}
for循环中的第四行只是一个没有赋值的元素,将其移动到return
语句中,或者将其推送到result\u html
如果您想在这里遵循react组件模式,那么这才是真正的问题,尝试拆分for循环并创建一个组件以仅显示一个结果,您会发现它更容易构建
const Result = props => {
const link_underline = {
color: 'blue',
textDecoration: 'underline',
cursor: 'pointer'
};
const { result } = props;
return (
<ul>
<li key={result.job_id.raw}>{result.business_title.raw}</li>
<li key={result.job_id.raw}>{result.job_description.raw}</li>
<li key={result.job_id.raw}>{result.preferred_skills.raw}</li>
<li><span style={link_underline} onClick={result.job_id.raw}>{result.business_title.raw}</span></li>
</ul>
)
}
// in the original component
return (
<main className="main main--details">
<h2>Results:</h2>
{results.map((result, i) => <Result key={i} result={result} />)}
<div>
</div>
</main>
);
const Result=props=>{
常量链接\u下划线={
颜色:“蓝色”,
text装饰:“下划线”,
光标:“指针”
};
常量{result}=props;
返回(
- {result.business\u title.raw}
- {result.job\u description.raw}
- {result.preferred_skills.raw}
- {result.business_title.raw}
)
}
//在原始组件中
返回(
结果:
{results.map((result,i)=>)}
);
@Stack445678我建议您花点时间在您的环境中设置ESLint。诚然,开始工作确实很痛苦,但它将是发现这些错误的最佳朋友。将其移动到return语句会导致“results not defined”错误,因为结果仅位于我的for循环中,将其放入“我的结果”html会使循环出于某种原因停止工作。如果要将该行嵌套在
中,则应使用标记将该行包装起来,这样推送就不会再像预期的那样按作业id循环工作,也不会更改标题无Onclick事件和下划线:(非常感谢您的回答!不幸的是,我之前尝试过类似的方法(只是继续测试您的方法以确定)我在for循环中得到了错误“results is not defined”,它只存在于循环中,在这种情况下,我不太确定为什么我会得到这个错误。你在ajax调用中得到了结果吗?你能发布这个逻辑吗?等等!我成功了!非常感谢你的帮助!