При использовании хуков потеря производительности при создании встроенной функции стрелки незначительна для преимуществ, которые она имеет по сравнению с компонентами класса, и, следовательно, вам не нужно беспокоиться о функциях стрелки при рендеринге.
Вы можете отключить это правило eslint.
Однако вы все еще улучшаете свой код, написав метод increment
и запомнив его, используя крюк useCallback
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = React.useState(0);
const increment = React.useCallback(() => {
setCount(prev => prev+1);
}, [])
return (
<div>
<p>You clicked {count} times</p>
<button onClick={increment}>
Click me
</button>
</div>
);
}
ReactDOM.render(<Example />, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.3/umd/react-dom.production.min.js"></script>
<div id="app"/>
Эта ошибка обычно возникает из-за того, что настроенный слушатель имеет неверный тип параметра события. Я почти уверен, что это должно быть так.
Проверьте всех слушателей, которых вы настроили для этого события, и убедитесь, что функция
someFunction(event : WindowEvent) : void
Попробуйте использовать другое значение для ILLEGALPOSITION
, «invalidPosition»
, может использоваться самой Flex (или другой частью вашего кода) и связано с событие мыши. Поэтому, когда этот обработчик срабатывает, он пытается преобразовать ваше событие в MouseEvent
, потому что считает, что оно должно быть одним.