“如何度过难关”;应为赋值或函数调用,而应为表达式;错误Javascript

“如何度过难关”;应为赋值或函数调用,而应为表达式;错误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

这里是Total React Noob,只是尝试在数组中的所有标题下加下划线,并向它们添加onclick函数,但我一直收到“预期的赋值或函数调用,而不是看到表达式”错误,我做错了什么

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调用中得到了结果吗?你能发布这个逻辑吗?等等!我成功了!非常感谢你的帮助!