问题标签 [react-tsx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 使用 ESlint 对 React+Typescript 项目进行 Linting
我在一篇文章中读到,TypeScript 核心团队解释 ESLint 的架构比 TSLint 的性能更高。另一方面@typescript-eslint/parser
,它制作了一个更方便的 AST,它与@typescript-eslint/eslint-plugin
.
现在我感觉我的tslintrc
文件没有很好的插件和扩展设置。
- 遵守 Airbnb 规则好
tsx
还是只遵守标准规则好? - 包含的顺序应该是什么,
extends
并且plugins
它们不会相互覆盖并从中获得最佳的 linting 和自动修复? - 使用 CRA 创建的应用程序
yarn create react-app myapp --typescript
并没有更改任何内容tsconfig.json
这是我的.eslintrc.js
此外,如果有人知道 GitHub/Gist 项目中的一个好的设置,那将会被应用。
reactjs - 从 componentDidMount() 调用 Typescript Apollo Query
我有一个 React 组件,它调用一个期望接收对象数组(用于验证数据)的查询。然后我使用它来验证一个 html 表单,该表单又在 apollo Mutation 元素中定义。它在组件方法的 return 语句中的结构render()
方式可行,但看起来很麻烦,让我想起了回调地狱时代。我真正想做的是摆脱方法中的<QueryCustomerValidations>
元素render()
并将其移动到(理想情况下)componentDidMount
生命周期事件中。这样验证器就可以在那里加载以供以后在表单中使用,然后离开<MutationCreateCustomer>
内部的 render()。
现在,我必须将表单包装在突变中。查询返回的箭头函数内部的突变,以便以正确的顺序接收异步数据。
出于文档目的,这里是创建查询的接口。由于我使用 apollo 客户端从服务器获取了其中的一些数据,因此在这种情况下,一个简单的 graphql 查询解决方案onDidMount()
将不起作用。
getCustomerValidations.ts (Interfaces)
customer-validations.query.ts (Client side query types)
正确的解决方案可以是一种从方法中复制并触发<QueryCustomerValidations>
元素的componentDidMount()
方法,或者如何将元素从方法中取出render()
并使用某种“等待”方式调用它,以便可以首先调用它以及之后的突变(并使用查询中的数据)。
谢谢,我知道这不是很容易弄清楚。
typescript - Prettier 不解析 Typescript 类型转换
我正在使用 Prettier 1.17.1 和 TypeScript 3.4.5 和create-react-app。
每次尝试使用x as T
TypeScript 中的语法进行类型转换时,我都会收到以下错误:
我也尝试了不同的语法<T> x
,但由于 JSX 格式,它破坏了 TS 编译。
reactjs - 在 React ComponenetDidUpdate() 生命周期方法在渲染道具模式中被多次调用
我正在尝试使用渲染道具模式来获得更好的代码可重用性,为此我正在关注渲染道具组件(R),它包含生命周期方法以及来自 FC(F)的 clickHandler,它进行一些处理并更新 redux 存储。我在 (A) 组件内使用渲染组件 (R) 使用不同的道具 3 次。一旦我从 FC 使用 clickHandler,它就会调用来自渲染道具组件(R)的方法并更新商店,但渲染道具组件(R)中的 componentDidUpdate() 方法也会被调用 3 次,这不应该发生,它应该只被调用一次。无法知道并获取哪个 clickHandler 更新了商店。
渲染道具组件(R)中的 ComponentDidUpdate 和 handleUpload
组件(A)中使用的渲染道具功能(UploadRender)
请帮助我了解 componentDidUpdate 被多次调用以及如何知道哪个 clickHandler 被调用。
reactjs - TypeScript 不会选择正确的覆盖
我刚刚创建了一个动态组件,应该如下所示:
/* 应该继承所有 InputComponent 属性。DefaultComponent 应该是默认的组件道具值。*/
我当前的实现如下所示:
所以我希望接下来会发生:
1.)当组件未定义时,我希望第一次覆盖(默认的那个)
2.) 定义组件时,我希望继承它的属性
由于某种原因,第二种情况永远不会发生,它总是选择第一种。有没有办法更严格,所以我可以强迫第二种情况成为可能?
更新
reactjs - react-autosuggest 与 debounce 和 distinctUntilChanged
意图:
我正在尝试实现一个理想的搜索字段,直到:
- 已达到350ms的去抖时间
- AND 直到输入字段的值发生变化。
到目前为止我已经尝试过:
我使用主题来跟踪输入字段中的更改。每次输入字段发生变化handleSuggestionsFetchRequested
并被调用时,我都会将一个新值向下推到Subject
usingsearchString$.next(userInput);
在useEffect
钩子中,我正在pipe
使用searchString$
withdebounceTime(350)
和distinctUntilChanged()
。像这样的东西:
但是每次用户输入发生变化时,API 调用仍然会进行。
问题:
我认为问题在于每次输入字段的值发生变化时,我也在设置状态:
这导致组件重新渲染并调用 useEffect,最终导致一次又一次地调用 API。
我可能是错的。
如何复制:
我创建了一个复制问题的示例代码沙箱。
提前非常感谢。
typescript - React-Redux Reducer 没有被调用
我已经设置了我的状态、动作、reducers、类型(使用 TypeScript),以及对这些动作的一些调用。该操作调用了适当的函数(我不确定它们是否真正返回数据),但此状态切片的减速器并非每次都被调用。
我已经阅读了 React-Redux 文档,查看了 Stack Overflow 问题,并询问了一位同事。我发现没有任何帮助。
页面.tsx
/store/cards/types.ts
/store/cards/actions.ts
/api/cardsApi.ts
/store/cards/reducers.ts
/store/index.ts
预期结果:更新状态以包含从 API 中提取的卡片。
编辑:我刚刚发现我的操作和类型已加载到页面源中,但减速器没有。关于可能导致这种情况的任何想法?
javascript - 兑换至使用带有回调函数的 Hooks
我正在尝试转换Class Component
为Stateless Functional Component
使用React Hooks概念
我正在使用react-jsonschema-form
-Custom field components
参考链接
我正在像这样转换上面的代码。
我认为它会引发错误,我需要使用 React.useEffect(),但不知道如何实现它。请任何反应专家支持。
index.js:1375 警告:来自 useState() 和 useReducer() Hooks 的状态更新不支持第二个回调参数。要在渲染后执行副作用,请在组件主体中使用 useEffect() 声明它。
typescript - 属性 'handleLoginDisplay' 不存在于类型'Readonly<{}> & Readonly<{ children?: ReactNode; }>
我在 Typescript 中有以下代码。为什么编译器会抛出错误?
属性 'handleLoginDisplay' 不存在于类型'Readonly<{}> & Readonly<{ children?: ReactNode; }>'.ts(2339)