【问题标题】:How to get past "Expected an assignment or function call and instead saw an expression" Error Javascript如何通过“预期分配或函数调用,而不是看到一个表达式”错误 Javascript
【发布时间】:2020-08-12 21:41:02
【问题描述】:

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>
  );
  }

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    for 循环中的第 4 行只是一个没有赋值的元素,将其移至 return 语句或将其推送至 result_html

    【讨论】:

    • @Stack445678 我建议您花时间在您的环境中设置 ESLint。诚然,刚开始工作确实很痛苦,但发现这些错误将是您最好的朋友。
    • 将其移至 return 语句会导致“未定义结果”错误,因为 results 仅位于我的 for 循环中,并将其推入我的 result_html 会使循环因某种原因停止工作。跨度>
    • 如果你要将它嵌套在&lt;ul&gt; 中,你应该用&lt;li&gt; 标记包装该行,然后推送应该可以工作
    • 它不再像应有的那样按作业 ID 循环,而且它根本没有更改标题,没有 Onclick 事件,也没有下划线:(
    【解决方案2】:

    如果你想在这里遵循 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>
    );
    

    【讨论】:

    • 非常感谢您的回答!不幸的是,我之前尝试过这样的事情(只是继续测试你的确定),我在 for 循环中得到错误“结果未定义”它只存在于循环中,在这种情况下我不太确定为什么我会收到这个错误
    • 您是否在 ajax 调用中得到结果?你能把这个逻辑贴出来吗?
    • 等等!我让它工作了!非常感谢您的帮助!
    猜你喜欢
    • 2019-09-09
    • 2011-05-09
    • 2019-10-29
    • 2015-11-03
    • 1970-01-01
    • 2020-03-21
    • 2014-06-12
    • 2020-11-16
    • 2020-12-28
    相关资源
    最近更新 更多