You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/warnings/unknown-prop.md
+13-13Lines changed: 13 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -1,39 +1,39 @@
1
1
---
2
-
title: Unknown Prop Warning
2
+
title: 警告:未知的 Prop
3
3
layout: single
4
4
permalink: warnings/unknown-prop.html
5
5
---
6
-
The unknown-prop warning will fire if you attempt to render a DOM element with a prop that is not recognized by React as a legal DOM attribute/property. You should ensure that your DOM elements do not have spurious props floating around.
6
+
当你尝试用一个无法被 React 识别为合法 DOM 属性(attribute / property)的 prop 渲染 DOM 元素时,会出现 unknown-prop 警告。你应该确保你的 DOM 元素上没有这类失效的 props。
7
7
8
-
There are a couple of likely reasons this warning could be appearing:
8
+
这个警告出现的原因可能有如下几种:
9
9
10
-
1.Are you using `{...this.props}`or`cloneElement(element, this.props)`? Your component is transferring its own props directly to a child element (eg. [transferring props](/docs/transferring-props.html)). When transferring props to a child component, you should ensure that you are not accidentally forwarding props that were intended to be interpreted by the parent component.
2.You are using a non-standard DOM attribute on a native DOM node, perhaps to represent custom data. If you are trying to attach custom data to a standard DOM element, consider using a custom data attribute as described [on MDN](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes).
12
+
2.你在原生 DOM 节点上使用的是非标准的 DOM 属性,或许是用来表示自定义数据。如果你想把自定义数据附加到标准 DOM 元素上,请参考 [MDN](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes) 使用自定义的 data 属性。
13
13
14
-
3. React does not yet recognize the attribute you specified. This will likely be fixed in a future version of React. However, React currently strips all unknown attributes, so specifying them in your React app will not cause them to be rendered.
4.You are using a React component without an upper case. React interprets it as a DOM tag because [React JSX transform uses the upper vs. lower case convention to distinguish between user-defined components and DOM tags](/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized).
16
+
4.你在使用 React 组件但是没有使用大写,React 会将其解释为 DOM 标签,这是因为 [React JSX 语法使用大小写约定来区分用户自定义组件和 DOM 标签](/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized)。
17
17
18
18
---
19
19
20
-
To fix this, composite components should "consume" any prop that is intended for the composite component and not intended for the child component. Example:
20
+
要解决这个问题,组合组件应该“消费掉”任何只用于复合组件而不是子组件的 prop。例如:
21
21
22
-
**Bad:**Unexpected `layout` prop is forwarded to the `div`tag.
22
+
**Bad:**`layout` prop 意外转发给了 `div`标签。
23
23
24
24
```js
25
25
functionMyDiv(props) {
26
26
if (props.layout==='horizontal') {
27
-
//BAD! Because you know for sure "layout" is not a prop that <div> understands.
**Good:**You can also assign the props to a new object and delete the keys that you're using from the new object. Be sure not to delete the props from the original `this.props`object, since that object should be considered immutable.
0 commit comments