this.props.items = [ { name: 'a', price: 10},
{ name: 'b', price: 20},
{ name: 'c', price: 10},
{ name: 'd', price: 30},
];
我想创建一个包含所有价格选项的列表,并将唯一的值放在下拉列表中,所以我这样做:
const priceOptions = [{ text: '', value: '' }];
const prices = [
...new Set(this.props.items.map(item => item.price)),
];
prices.forEach(price => {
if (price) {
priceOptions.push({
key: price,
text: price,
value: price,
});
}
此代码引发错误:
警告:遇到具有相同键ellipsisitem-nan
的两个子项。键应该是唯一的,以便组件在更新时维护它们的标识。非唯一键可能导致重复和/或省略子键-此行为不受支持,并且可能在未来版本中更改。
const prices = [
...new Set(this.props.items.map(item => item.price)),
];
prices.forEach((price, index) => {
if (price) {
priceOptions.push({
key: index,
text: price,
value: price,
});
}
});
从10,20,10,30
到10,20,30
更新我也添加到它呈现的地方。
return (
<Layout>
...
<Dropdown
placeholder="Price"
onChange={this.searchHandlerPrice}
options={priceOptions}
/>
和SearchHandlerPrice:
searchHandlerPrice = (event, data) => {
const { getItems } = this.props;
geItems({
name: this.props.query.name,
price: data.value,
});
};
import React from 'react';
import { Dropdown } from 'semantic-ui-react';
import './Dropdown.styles.scss';
export default ({placeholder, options, onChange}) => {
return (
<Dropdown className="hello-dropdown"
placeholder={placeholder}
search
selection
options={options}
onChange={onChange}
clearable
/>
);
};
不确定问题出在哪里。然而,我使用MATERIAL UI的SELECT标记重新创建了这个问题,一切似乎都很好。
在app.js中
class App extends React.Component {
items = [
{ name: "a", price: 10 },
{ name: "b", price: 20 },
{ name: "c", price: 10 },
{ name: "d", price: 30 }
];
render() {
return (
<div className="App">
<Select items={this.items} />
</div>
);
}
}
export default App;
在select.js中
export default function SelectForm(props) {
const classes = useStyles();
const [price, setPrice] = React.useState("");
const [uniquePrice, setUniquePrice] = React.useState([]);
React.useEffect(() => {
const newPrice = [...new Set(props.items.map(item => item.price))];
setUniquePrice(newPrice);
}, [props]);
const handleChange = event => {
setPrice(event.target.value);
};
return (
<div className="App">
<FormControl className={classes.formControl}>
<InputLabel id="demo-simple-select-label">Price List</InputLabel>
<Select value={price} onChange={handleChange}>
{uniquePrice.map(price => (
<MenuItem key={price} value={price}>
{price}
</MenuItem>
))}
</Select>
<p>Selected Value: {price}</p>
</FormControl>
</div>
);
}
我有一个具有相同键值uid的多维数组。我想把它转换成子数组通过限制Foreachloop.you可以看到两个uid有值100和两个uid有值5465 我想得到这样的阵列。 我可以不使用foreach循环得到结果吗?
我正在将某些程序集打包到 msi 包中。在执行此操作时,我要求将一些程序集放入本地文件系统以及目标计算机的 GAC 中。众所周知,在这种情况下,重复文件表将无济于事。我决定将程序集放在具有不同标识符的 CAB 文件中两次。现在,为了填充组件表,我有不同的组件标识符,但我没有用于类似程序集的不同组件 GUID。我的问题是,如果我为具有不同组件标识符(在组件表中)的条目保持GUID(因为基本上程序集是
我在React中使用一个调色板生成器,我遇到的问题是,当我尝试将不同的颜色传递给将形成调色板的每个子divs时,每个子divs都得到相同的颜色。 这是密码 基本上父组件将相同的颜色传递给所有3个子组件,因为我传递了相同的状态。知道我怎么通过不同的颜色吗?
我最近在我的路由中实现了反应路由器开关组件,以便呈现一个NoMatch组件(这只是一个404错误组件)。然而,在我的路由中实现这一点后,我注意到在我的主页上只有一个组件会呈现,标题组件。 标题和搜索栏都应该呈现到相同的路径。 我的代码如下: 我注意到如果我删除了Switch组件,那么一切都会渲染得很好,但是NoMatch组件也会渲染到路由。 问题:为什么我不能在交换机内部的同一路径上渲染多个组件?
我有react组件A,它呈现一个表。表中某一列的数据通过另一个组件B呈现,因此是的子级。每当用户单击页面上的任何位置时,我希望在上执行一些操作。此click事件侦听器是在中定义的。如何从类内循环所有?我的组件结构如下所示: 我遇到了,但当通过将子级作为道具传递时,这很有用;例如,当代码如下所示时:
问题内容: 我有两个数组:一个数组填充了来自ajax请求的信息,另一个数组存储了用户单击的按钮。我使用以下代码(我填写了示例编号): 但是,即使两个数组相同,但名称不同,它总是给出。(我在Chrome的JS控制台中对此进行了检查)。那么,有什么办法可以知道这两个数组是否包含相同的数组?为什么给?我怎么知道第一个数组中的哪个值不在第二个数组中? 问题答案: 请注意,这不会像以前的答案那样修改原始数组