Skip to content

Commit aa0d557

Browse files
sunnylqmdependabot[bot]Simekbigcupcoffeebrainbicycle
authored
docs(cndocs): 批量同步 52 个中文文档(2026-04-13) (#1010)
* Bump serialize-javascript from 7.0.3 to 7.0.5 (facebook#5031) * Bump serialize-javascript from 7.0.3 to 7.0.5 Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) from 7.0.3 to 7.0.5. - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](yahoo/serialize-javascript@v7.0.3...v7.0.5) --- updated-dependencies: - dependency-name: serialize-javascript dependency-version: 7.0.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * update lock --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bartosz Kaszubowski <gosimek@gmail.com> * Bump path-to-regexp from 0.1.12 to 0.1.13 (facebook#5032) Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 0.1.12 to 0.1.13. - [Release notes](https://github.com/pillarjs/path-to-regexp/releases) - [Changelog](https://github.com/pillarjs/path-to-regexp/blob/v.0.1.13/History.md) - [Commits](pillarjs/path-to-regexp@v0.1.12...v.0.1.13) --- updated-dependencies: - dependency-name: path-to-regexp dependency-version: 0.1.13 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * mixBlendMode is Android 10+ (facebook#5033) * make project name and codegen config consistent (facebook#4924) Co-authored-by: Bartosz Kaszubowski <gosimek@gmail.com> * backport iOS native module changes to versioned docs (facebook#5036) * [blog] Add 0.85 release post (facebook#5038) * Add React Native 0.85 blog post Add the release blog post for React Native 0.85 covering the new Animation Backend, DevTools improvements, Metro TLS support, Jest preset migration, and other breaking changes. Also adds missing author entries to authors.yml. * Add images for 0.85 blog post Add animation backend demo GIFs for iOS and Android, and DevTools macOS tabs screenshot. Update blog post to reference the new assets. * Display animation backend GIFs side by side in a table * Fix prettier lint for markdown table formatting * Fix prettier table formatting via --write * Apply PR feedback from Simek - Use internal link for animations#caveats - Add title parameter to metro.config.js and jest.config.js code blocks - Use sh instead of text for CLI command code block * Apply huntie's feedback and update date to 2026-04-07 - Simplify Expo SDK paragraph wording - Update blog post date from 2026-04-06 to 2026-04-07 * [docs] Cut branch 0.85 (facebook#5040) * Update releases-table.md for 0.85 (facebook#5041) * Minor fixes to the 0.85 blogpost (facebook#5043) * fix code snippet in 0.85 blog post (facebook#5045) * [blog] Remove TextInput selection data from 0.85 blog post (facebook#5046) * Add supported Node.js version examples to 0.85 blog post (facebook#5044) Illustrate the EOL Node.js versions section with bullet points showing which versions are supported and which are not. https://claude.ai/code/session_012yWt7ffvxSWY3L9JsbyFu3 Co-authored-by: Claude <noreply@anthropic.com> * migrate monorepo back to Yarn Classic (facebook#5047) * docs(cndocs): sync linking.md * docs(cndocs): sync getting-started.md * docs(cndocs): sync switch.md * docs(cndocs): sync network.md * docs(cndocs): sync handling-touches.md * docs(cndocs): sync permissionsandroid.md * docs(cndocs): sync publishing-to-app-store.md * docs(cndocs): sync timers.md * docs(cndocs): sync scrollview.md * docs(cndocs): sync sectionlist.md * docs(cndocs): sync touchablehighlight.md * docs(cndocs): sync flatlist.md * docs(cndocs): sync usecolorscheme.md * docs(cndocs): sync usewindowdimensions.md * docs(cndocs): sync vibration.md * docs(cndocs): cleanup orphaned files and sync removed-API stubs * docs(cndocs): sync roottag.md * docs(cndocs): sync upgrading.md * docs(cndocs): sync style.md * docs(cndocs): sync security.md * docs(cndocs): sync progressbarandroid.md * docs(cndocs): sync optimizing-flatlist-configuration.md * docs(cndocs): sync pixelratio.md * docs(cndocs): sync releases/release-levels.md * docs(cndocs): sync platform-specific-code.md * docs(cndocs): sync settings.md * docs(cndocs): sync inputaccessoryview.md * docs(cndocs): sync turbo-native-modules-android.md * docs(cndocs): sync panresponder.md * docs(cndocs): sync react-native-gradle-plugin.md * docs(cndocs): sync the-new-architecture/pure-cxx-modules.md * docs(cndocs): sync legacy/native-modules-ios.md * docs(cndocs): sync flexbox.md Add Tabs wrapper with JavaScript and TypeScript SnackPlayer examples for 6 priority sections: - Flex Direction - Layout Direction - Align Items - Align Self - Flex Basis, Grow, and Shrink - Flex Wrap Also updated: - Heading levels (### to ##) - Links to yoga documentation (yogalayout.com to yogalayout.dev) - Proper markdown link syntax for prop references - Code formatting consistency (single quotes) * revert(cndocs): 恢复 getting-started.md,不照搬 EN Expo-first 版本 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bartosz Kaszubowski <gosimek@gmail.com> Co-authored-by: bigcupcoffee <24373206+bigcupcoffee@users.noreply.github.com> Co-authored-by: Brian Beckerle <49686530+brainbicycle@users.noreply.github.com> Co-authored-by: Alan Lee <42583872+alanleedev@users.noreply.github.com> Co-authored-by: Nicola Corti <corti.nico@gmail.com> Co-authored-by: Zeya Peng <zeyap@users.noreply.github.com> Co-authored-by: Alex Hunt <hello@alexhunt.dev> Co-authored-by: Claude <noreply@anthropic.com>
1 parent 9392209 commit aa0d557

File tree

323 files changed

+66582
-26240
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

323 files changed

+66582
-26240
lines changed

.github/workflows/pre-merge.yml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,14 @@ jobs:
1212
- name: Checkout repository
1313
uses: actions/checkout@v6
1414

15-
- name: Enable Corepack
16-
run: corepack enable
17-
1815
- name: Set up Node.js
1916
uses: actions/setup-node@v6
2017
with:
2118
node-version: "22"
2219
cache: yarn
2320

2421
- name: Check lock for duplications
25-
run: yarn dedupe --check
22+
run: yarn update-lock --fail
2623

2724
- name: Install dependencies
2825
run: yarn install --immutable
@@ -42,9 +39,6 @@ jobs:
4239
- name: Checkout repository
4340
uses: actions/checkout@v6
4441

45-
- name: Enable Corepack
46-
run: corepack enable
47-
4842
- name: Set up Node.js
4943
uses: actions/setup-node@v6
5044
with:
@@ -64,9 +58,6 @@ jobs:
6458
- name: Checkout repository
6559
uses: actions/checkout@v6
6660

67-
- name: Enable Corepack
68-
run: corepack enable
69-
7061
- name: Set up Node.js
7162
uses: actions/setup-node@v6
7263
with:

.yarnrc.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

README.md

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,8 @@
1-
# reactnativecn/react-native/
2-
3-
This repo contains a clone and a Chinese translated version of offcial
4-
[React Native website](https://facebook.github.io/react-native/).
5-
6-
## Sync with official repo
7-
8-
[facebook:main -> production](https://github.com/reactnativecn/react-native-website/compare/production...facebook:main)
9-
10-
# [reactnative.dev](https://reactnative.dev/) &middot; [![CC BY 4.0 license](https://img.shields.io/badge/license-CC%20BY%204.0-blue.svg)](LICENSE-docs) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md) <a href="https://twitter.com/intent/follow?screen_name=reactnative"><img src="https://img.shields.io/twitter/follow/reactnative.svg?label=Follow%20@reactnative" alt="Follow @reactnative" /></a>
1+
# [reactnative.dev](https://reactnative.dev/) &middot; [![CC BY 4.0 license](https://img.shields.io/badge/license-CC%20BY%204.0-blue.svg)](LICENSE-docs) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md) <a href="https://twitter.com/intent/follow?screen_name=reactnative"><img src="https://img.shields.io/twitter/follow/reactnative.svg?label=Follow%20@reactnative" alt="Follow @reactnative on X" /></a> <a href="https://bsky.app/profile/reactnative.dev"><img src="https://img.shields.io/badge/Bluesky-0285FF?logo=bluesky&logoColor=fff" alt="Follow @reactnative.dev on Bluesky" /></a>
112

123
This repo contains the website configuration and documentation powering the [React Native website](https://reactnative.dev/).
134

14-
If you are looking for the source code of the [React Native Archive website](https://archive.reactnative.dev/) select the [`archive`](https://github.com/facebook/react-native-website/tree/archive) branch.
5+
> If you are looking for the source code of the [React Native Archive website](https://archive.reactnative.dev/) select the [`archive`](https://github.com/facebook/react-native-website/tree/archive) branch.
156
167
## Contents
178

@@ -26,22 +17,15 @@ If you are looking for the source code of the [React Native Archive website](htt
2617
### Prerequisites
2718

2819
1. [Git](https://git-scm.com/downloads).
29-
1. [Node](https://nodejs.org/en/download/) _(version 20 or greater)_.
30-
1. [Yarn](https://yarnpkg.com/getting-started/install) _(version 4)_.
31-
1. A fork of the repo _(for any contributions)_.
32-
1. A clone of the `react-native-website` repo.
20+
1. [Node](https://nodejs.org/en/download/) _(version 22 or greater)_.
21+
1. [Yarn Classic](https://classic.yarnpkg.com/en/docs/install) _(version 1)_.
22+
1. A fork and clone of the `react-native-website` repo _(for any contributions)_.
3323

3424
### Installation
3525

3626
1. `cd react-native-website` to go into the project root.
37-
1. Run `corepack enable` to enable Corepack.
38-
39-
> If the command above fails, run `npm install -g corepack@latest` to install the latest version of [Corepack](https://yarnpkg.com/corepack#installation).
40-
4127
1. Run `yarn` to install the website's workspace dependencies.
4228

43-
> If you want to retain the globally instaled `yarn` v1, you can use `corepack yarn` instead.
44-
4529
### Running locally
4630

4731
1. Run `yarn start` to start the development server _(powered by [Docusaurus](https://docusaurus.io))_.
@@ -121,7 +105,8 @@ If you're adding a new doc or you need to alter the order the docs appear in the
121105

122106
Part of the React Native website is versioned to allow users to go back and see the Guides or API reference documentation for any given release. A new version of the website is generally generated whenever there is a new React Native release. When this happens, any changes made to the `docs` and `website/sidebars.ts` files will be copied over to the corresponding location within `website/versioned_docs` and `website/versioned_sidebars`.
123107

124-
> **_Note:_** Do not edit the auto-generated files within `versioned_docs` or `versioned_sidebars` unless you are sure it is necessary. Edits made to older versions will not be propagated to newer versions of the versioned docs.
108+
> [!NOTE]
109+
> Do not edit the auto-generated files within `versioned_docs` or `versioned_sidebars` unless you are sure it is necessary. Edits made to older versions will not be propagated to newer versions of the versioned docs.
125110
126111
Docusaurus keeps track of the list of versions for the site in the `website/versions.json` file. The ordering of versions in this file should be in reverse chronological order.
127112

@@ -159,7 +144,7 @@ The `showcase.json` file contains the list of users that are highlighted in the
159144
1. `git checkout main` from any folder in your local `react-native-website` repository.
160145
1. `git pull origin main` to ensure you have the latest main code.
161146
1. `git checkout -b the-name-of-my-branch` to create a branch.
162-
> replace `the-name-of-my-branch` with a suitable name, such as `update-animations-page`
147+
> replace `the-name-of-my-branch` with a suitable name, such as `update-animations-page`
163148
164149
### Make the change
165150

@@ -170,7 +155,11 @@ The `showcase.json` file contains the list of users that are highlighted in the
170155

171156
Visit **<http://localhost:3000/docs/next/YOUR-DOCS-PAGE>** to see your work.
172157

173-
> Visit <http://localhost:3000/versions> to see the list of all versions of the docs.
158+
> [!NOTE]
159+
> Visit <http://localhost:3000/versions> to see the list of all versions of the docs, if you have backported some of the changes.
160+
161+
> [!TIP]
162+
> If you're adding assets, make sure they’re optimized for the web. You can use tools like [ImageOptim](https://imageoptim.com/mac) to automatically apply lossless compression to various file types.
174163
175164
### Test the change
176165

@@ -184,7 +173,7 @@ If possible, test any visual changes in all latest versions of the following bro
184173
1. Run `yarn lint` and `yarn prettier` in `./website` directory to ensure your changes are consistent with other files in the repo.
185174
1. Run `yarn update-lock` to [deduplicate dependencies](https://yarnpkg.com/cli/dedupe).
186175
1. `git add -A && git commit -m "My message"` to stage and commit your changes.
187-
> replace `My message` with a commit message, such as `Fixed header logo on Android`
176+
> replace `My message` with a commit message, such as `Fixed header logo on Android`
188177
1. `git push my-fork-name the-name-of-my-branch`
189178
1. Go to the [react-native-website repo](https://github.com/facebook/react-native-website) and you should see recently pushed branches.
190179
1. Follow GitHub's instructions.

cndocs/architecture-overview.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

cndocs/flatlist.md

Lines changed: 47 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,13 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import con
2222

2323
## 示例
2424

25-
<Tabs groupId="language" queryString defaultValue={constants.dewfaultSnackLanguage} values={constants.snackLanguages}>
25+
<Tabs groupId="language" queryString defaultValue={constants.defaultSnackLanguage} values={constants.snackLanguages}>
2626
<TabItem value="javascript">
2727

28-
```SnackPlayer name=flatlist-simple&ext=js
28+
```SnackPlayer name=Simple%20FlatList%20Example&ext=js
2929
import React from 'react';
30-
import {
31-
SafeAreaView,
32-
View,
33-
FlatList,
34-
StyleSheet,
35-
Text,
36-
StatusBar,
37-
} from 'react-native';
30+
import {View, FlatList, StyleSheet, Text, StatusBar} from 'react-native';
31+
import {SafeAreaView, SafeAreaProvider} from 'react-native-safe-area-context';
3832
3933
const DATA = [
4034
{
@@ -57,17 +51,17 @@ const Item = ({title}) => (
5751
</View>
5852
);
5953
60-
const App = () => {
61-
return (
54+
const App = () => (
55+
<SafeAreaProvider>
6256
<SafeAreaView style={styles.container}>
6357
<FlatList
6458
data={DATA}
6559
renderItem={({item}) => <Item title={item.title} />}
6660
keyExtractor={item => item.id}
6761
/>
6862
</SafeAreaView>
69-
);
70-
};
63+
</SafeAreaProvider>
64+
);
7165
7266
const styles = StyleSheet.create({
7367
container: {
@@ -91,16 +85,10 @@ export default App;
9185
</TabItem>
9286
<TabItem value="typescript">
9387

94-
```SnackPlayer name=flatlist-simple&ext=tsx
88+
```SnackPlayer name=Simple%20FlatList%20Example&ext=tsx
9589
import React from 'react';
96-
import {
97-
SafeAreaView,
98-
View,
99-
FlatList,
100-
StyleSheet,
101-
Text,
102-
StatusBar,
103-
} from 'react-native';
90+
import {View, FlatList, StyleSheet, Text, StatusBar} from 'react-native';
91+
import {SafeAreaView, SafeAreaProvider} from 'react-native-safe-area-context';
10492
10593
const DATA = [
10694
{
@@ -125,17 +113,17 @@ const Item = ({title}: ItemProps) => (
125113
</View>
126114
);
127115
128-
const App = () => {
129-
return (
116+
const App = () => (
117+
<SafeAreaProvider>
130118
<SafeAreaView style={styles.container}>
131119
<FlatList
132120
data={DATA}
133121
renderItem={({item}) => <Item title={item.title} />}
134122
keyExtractor={item => item.id}
135123
/>
136124
</SafeAreaView>
137-
);
138-
};
125+
</SafeAreaProvider>
126+
);
139127
140128
const styles = StyleSheet.create({
141129
container: {
@@ -161,25 +149,24 @@ export default App;
161149

162150
要呈现多列,请使用 [`numColumns`](flatlist.md#numcolumns) 属性。使用这种方法而不是 `flexWrap` 布局可以防止与项目高度逻辑发生冲突。
163151

164-
下面是一个较复杂的例子,其中演示了如何利用`PureComponent`来进一步优化性能和减少 bug 产生的可能(以下这段文字需要你深刻理解 `shouldComponentUpdate`, `memo` 的机制,以及 `Component``PureComponent` 的不同,如果不了解就先跳过吧)
152+
下面是一个更复杂的、可选择的例子
165153

166-
- 对于`MyListItem`组件来说,其`onPressItem`属性使用箭头函数而非 bind 的方式进行绑定,使其不会在每次列表重新 render 时生成一个新的函数,从而保证了 props 的不变性(当然前提是 `id``selected``title`也没变),不会触发自身无谓的重新 render。换句话说,如果你是用 bind 来绑定`onPressItem`,每次都会生成一个新的函数,导致 props 在`===`比较时返回 false,从而触发自身的一次不必要的重新 render。
167-
-`FlatList`指定`extraData={this.state}`属性,是为了保证`state.selected`变化时,能够正确触发`FlatList`的更新。如果不指定此属性,则`FlatList`不会触发更新,因为它是一个`PureComponent`,其 props 在`===`比较中没有变化则不会触发更新。
168-
- `keyExtractor`属性指定使用 id 作为列表每一项的 key。
154+
- 通过给`FlatList`传递`extraData={selectedId}`,我们确保当状态变化时`FlatList`本身会重新渲染。如果不设置此属性,`FlatList`不会知道需要重新渲染任何项目,因为它是一个`PureComponent`,属性比较不会显示任何变化。
155+
- `keyExtractor`告诉列表使用`id`作为 React key,而不是默认的`key`属性。
169156

170-
<Tabs groupId="language" queryString defaultValue={constants.dewfaultSnackLanguage} values={constants.snackLanguages}>
157+
<Tabs groupId="language" queryString defaultValue={constants.defaultSnackLanguage} values={constants.snackLanguages}>
171158
<TabItem value="javascript">
172159

173160
```SnackPlayer name=flatlist-selectable&ext=js
174161
import React, {useState} from 'react';
175162
import {
176163
FlatList,
177-
SafeAreaView,
178164
StatusBar,
179165
StyleSheet,
180166
Text,
181167
TouchableOpacity,
182168
} from 'react-native';
169+
import {SafeAreaView, SafeAreaProvider} from 'react-native-safe-area-context';
183170
184171
const DATA = [
185172
{
@@ -220,14 +207,16 @@ const App = () => {
220207
};
221208
222209
return (
223-
<SafeAreaView style={styles.container}>
224-
<FlatList
225-
data={DATA}
226-
renderItem={renderItem}
227-
keyExtractor={item => item.id}
228-
extraData={selectedId}
229-
/>
230-
</SafeAreaView>
210+
<SafeAreaProvider>
211+
<SafeAreaView style={styles.container}>
212+
<FlatList
213+
data={DATA}
214+
renderItem={renderItem}
215+
keyExtractor={item => item.id}
216+
extraData={selectedId}
217+
/>
218+
</SafeAreaView>
219+
</SafeAreaProvider>
231220
);
232221
};
233222
@@ -256,12 +245,12 @@ export default App;
256245
import React, {useState} from 'react';
257246
import {
258247
FlatList,
259-
SafeAreaView,
260248
StatusBar,
261249
StyleSheet,
262250
Text,
263251
TouchableOpacity,
264252
} from 'react-native';
253+
import {SafeAreaView, SafeAreaProvider} from 'react-native-safe-area-context';
265254
266255
type ItemData = {
267256
id: string;
@@ -314,14 +303,16 @@ const App = () => {
314303
};
315304
316305
return (
317-
<SafeAreaView style={styles.container}>
318-
<FlatList
319-
data={DATA}
320-
renderItem={renderItem}
321-
keyExtractor={item => item.id}
322-
extraData={selectedId}
323-
/>
324-
</SafeAreaView>
306+
<SafeAreaProvider>
307+
<SafeAreaView style={styles.container}>
308+
<FlatList
309+
data={DATA}
310+
renderItem={renderItem}
311+
keyExtractor={item => item.id}
312+
extraData={selectedId}
313+
/>
314+
</SafeAreaView>
315+
</SafeAreaProvider>
325316
);
326317
};
327318
@@ -346,10 +337,10 @@ export default App;
346337
</TabItem>
347338
</Tabs>
348339

349-
本组件实质是基于[`<VirtualizedList>`](virtualizedlist.md)组件的封装,继承了其所有 props(也包括所有[`<ScrollView>`](scrollview.md))的 props),但在本文档中没有列出。此外还有下面这些需要注意的事项:
340+
本组件实质是基于[`<VirtualizedList>`](virtualizedlist.md)组件的封装,继承了其所有 props(也包括所有[`<ScrollView>`](scrollview.md)的 props),但在本文档中没有列出。此外还有下面这些需要注意的事项:
350341

351342
- 当某行滑出渲染区域之外后,其内部状态将不会保留。请确保你在行组件以外的地方保留了数据。
352-
- 本组件继承自`PureComponent`而非通常的`Component`,这意味着如果其`props``浅比较`中是相等的,则不会重新渲染。所以请先检查你的`renderItem`函数所依赖的`props`数据(包括`data`属性以及可能用到的父组件的 state),如果是一个引用类型(Object 或者数组都是引用类型),则需要先修改其引用地址(比如先复制到一个新的 Object 或者数组中),然后再修改其值,否则界面很可能不会刷新。(译注:这一段不了解的朋友建议先学习下[js 中的基本类型和引用类型](https://segmentfault.com/a/1190000002789651)。)
343+
- 本组件继承自`PureComponent`而非通常的`Component`,这意味着如果其`props`在浅比较中是相等的,则不会重新渲染。所以请确保你的`renderItem`函数所依赖的所有数据都作为 prop 传递(例如`extraData`),且在更新后不是`===`相等的,否则你的 UI 可能不会更新。这包括`data`属性和父组件的状态。
353344
- 为了优化内存占用同时保持滑动的流畅,列表内容会在屏幕外异步绘制。这意味着如果用户滑动的速度超过渲染的速度,则会先看到空白的内容。这是为了优化不得不作出的妥协,你可以根据自己的需求调整相应的参数,而我们也在设法持续改进。
354345
- 默认情况下每行都需要提供一个不重复的 key 属性。你也可以提供一个`keyExtractor`函数来生成 key。
355346

@@ -359,13 +350,13 @@ export default App;
359350

360351
## Props
361352

362-
### [ScrollView Props](scrollview.md#props)
353+
### [VirtualizedList Props](virtualizedlist.md#props)
363354

364-
继承所有[ScrollView 的 Props](scrollview.md#props)。但如果嵌套在其他同滚动方向的 FlatList 中则无效
355+
继承 [VirtualizedList Props](virtualizedlist.md#props)
365356

366357
---
367358

368-
### <div class="label required basic">必需</div> **`renderItem`**
359+
### <div className="label required basic">Required</div> **`renderItem`**
369360

370361
```tsx
371362
renderItem({
@@ -425,7 +416,7 @@ renderItem({
425416

426417
---
427418

428-
### <div class="label required basic">必需</div> **`data`**
419+
### <div className="label required basic">Required</div> **`data`**
429420

430421
为了简化起见,data 属性目前只支持普通数组或类数组。如果需要使用其他特殊数据结构,例如 immutable 数组,请直接使用更底层的[`VirtualizedList`](virtualizedlist.md)组件。
431422

0 commit comments

Comments
 (0)