繁体   English   中英

ReactJS箭头主体周围的异常块语句

[英]ReactJS Unexpected block statement surrounding arrow body

在此处输入图片说明

 ...  
    renderSuggestion = suggestion => {
        return (
          <div className="result">
            <div>{suggestion.fullName}</div>
            <div className="shortCode">{suggestion.shortCode}</div>
          </div>
        );
      };
    ...

它是一个tsx文件

在此处输入图片说明

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import Autosuggest from 'react-autosuggest';
import axios from 'axios';
import { debounce } from 'throttle-debounce';
import { root } from 'postcss';

class AutoComplete extends React.Component {
  state = {
    value: '',
    suggestions: []
  };

  componentWillMount() {
    this.onSuggestionsFetchRequested = debounce(500, this.onSuggestionsFetchRequested);
  }

  renderSuggestion = suggestion => return (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
  );
  };

  onChange = (event, { newValue }) => {
    this.setState({ value: newValue });
  };

  onSuggestionsFetchRequested = ({ value }) => {
    axios
      .post('http://localhost:9200/crm_app/customers/_search', {
        query: {
          multi_match: {
            query: value,
            fields: ['fullName', 'shortCode']
          }
        },
        sort: ['_score', { createdDate: 'desc' }]
      })
      .then(res => {
        const results = res.data.hits.hits.map(h => h._source);
        this.setState({ suggestions: results });
      });
  };

  onSuggestionsClearRequested = () => {
    this.setState({ suggestions: [] });
  };

  render() {
    const { value, suggestions } = this.state;

    const inputProps = {
      placeholder: 'customer name or short code',
      value,
      onChange: this.onChange
    };

    return (
      <div className="App">
        <h1>AutoComplete Demo</h1>
        <Autosuggest
          suggestions={suggestions}
          onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
          onSuggestionsClearRequested={this.onSuggestionsClearRequested}
          getSuggestionValue={suggestion => suggestion.fullName}
          renderSuggestion={this.renderSuggestion}
          inputProps={inputProps}
        />
      </div>
    );
  }
}

const rootElement = document.getElementById('root');
ReactDOM.render(<AutoComplete />, rootElement);
export default AutoComplete;

有语法错误:

  renderSuggestion = suggestion => return (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
  );
  };

可能是:

  renderSuggestion = suggestion => (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
  );

要么:

  renderSuggestion = suggestion => {
  return (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
  );
  };

Linter错误是指这个道具:

getSuggestionValue={suggestion => suggestion.fullName}

这样会在每个render调用上创建新函数。 这不是很大的开销。 可以将其定义为this.getSuggestionValue回调,也可以禁用linter规则。

您在这里遇到语法错误:

renderSuggestion = suggestion => return (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
);

要在“箭头功能”中使用“ return”语句,您需要为功能it-self打开一个块。

可以这样做:

renderSuggestion = () => {
    return (
        <div className="result">
          <div>{suggestion.fullName}</div>
          <div className="shortCode">{suggestion.shortCode}</div>
        </div>
    );
};

或者您可以立即返回值而无需打开功能块,例如:

renderSuggestion = suggestion => (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
);

替换您的代码:

renderSuggestion = suggestion => return (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
  );
  };

有了这个:

renderSuggestion = suggestion => (
    <div className="result">
      <div>{suggestion.fullName}</div>
      <div className="shortCode">{suggestion.shortCode}</div>
    </div>
  );

我所做的是修复一些语法错误。 希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM