所以我用一个对象作为 Todo 列表创建了 React Todo App。通过键删除项目与delete 一起使用,但让我返回 boolean 而不是 Object 与其余项目。
deleteTodo = (id) => {
const { todos } = this.state;
this.setState({
todos: delete todos[id],
});
Run Code Online (Sandbox Code Playgroud)
我在控制台中得到这个:
Warning: Failed prop type: Invalid prop `todos` of type `boolean` supplied to `TodoList`, expected an object.
Run Code Online (Sandbox Code Playgroud) 我的界面:
export interface MapMarker{
longitude: number,
latitude: number,
popupText: string
}
Run Code Online (Sandbox Code Playgroud)
我的组件
mapMarker: MapMarker;
ngOnInit() {
this.mapMarker.latitude = location.coords.latitude;
this.mapMarker.longitude = location.coords.longitude;
this.mapMarker.popupText = "Your current Location"
}
Run Code Online (Sandbox Code Playgroud)
这告诉我不能设置不确定的纬度。我知道那是为什么。这是因为mapMarker具有MapMarker类型,但未定义,因为默认情况下未定义。我该怎么办?如果我mapMarker: MapMarker = null;仍然尝试错了。
我也尝试过 mapMarker: MapMarker = {};,这给了我以下错误=Type '{}' is missing the following properties from type 'MapMarker': longitude, latitude, popupText
我需要解决方案,但我不想使用“任何”类型。
在下面的示例中,从 firebase 获取数据后,我想添加 redux 存储中已经存在的用户对象并将其附加到所有消息对象中。请求你帮忙。
db.collection(`messages/${documentId}/chat`)
.get()
.then(snapshot => {
const messages = [];
snapshot.docs.forEach(doc => {
console.log("message", doc.id, doc.data());
messages.push({
id: doc.id,
from: doc.data().from,
to: doc.data().to,
text: doc.data().text,
timestamp: doc.data().timestamp.seconds * 1000
});
});
dispatch({ type: GET_CHAT, payload: messages });
});
Run Code Online (Sandbox Code Playgroud) 我需要一个正则表达式来匹配下面的数字数组,这些数字可以嵌套.这些应该通过:
[]
[1, 2, 3]
[1, 2, 3, [1,2,3], 5]
Run Code Online (Sandbox Code Playgroud)
但以下应该不通过测试:
abc
1
[1,2,3
[#]
Run Code Online (Sandbox Code Playgroud)
这有效:
/(^\[)(\d+\,|\s(?:(|\,))|\d+|\s\[|\]\,)*(\]$)/g
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来实现相同的结果.我试过前瞻但不完全理解它并且无法使它工作.
有人可以解释为什么以下代码将原因值设为false吗?
if (reason = "" || reason == null) {
return;
}
alert(reason);
Run Code Online (Sandbox Code Playgroud) 我有一个针对用户的个人资料页面,每个用户的使用率从0到5。我想根据用户的排名填充星星。例如,如果用户的费率为4,我需要填写4星,而空白为1星
这是我在render方法中的代码:
<Text>{item.rate}</Text> // here I get the rate from api 0 to 5
<View>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#ffffff" type="solid" size={16}/>
</View>
Run Code Online (Sandbox Code Playgroud) 我有一个数组值,它作为字符串来自数据库。我需要将其转换为数组。当我在控制台中检查我的值时,我可以看到值为
"[["COL1","COL2","COL3"],["COL4","space,"COL5"]]"
Run Code Online (Sandbox Code Playgroud)
为了执行我的操作,我需要将其设置为以下结构
[["COL1","COL2","COL3"],["COL4","space,"COL5"]]
Run Code Online (Sandbox Code Playgroud)
我已经尝试过JSON.parse()和parseJSON
预期结果 :
[["COL1","COL2","COL3"],["COL4","space,"COL5"]]
Run Code Online (Sandbox Code Playgroud)
实际结果 :
"[["COL1","COL2","COL3"],["COL4","space,"COL5"]]"
Run Code Online (Sandbox Code Playgroud) 例如,我们有一个列表:
const list = {
"honda": "cars",
"samsung": "electronics",
"pear": "fruits"
}
Run Code Online (Sandbox Code Playgroud)
如果用户单击其中一个选项,则必须从列表中获取选中的和未选中的选项。我当时在想这将是一种非常快速的方法:
const filterObjectList = ({ target: { value } }) => {
const { [value], ...notSelected } = list;
}
Run Code Online (Sandbox Code Playgroud)
例如,用户选择honda。
list[value] === list.honda //true
Run Code Online (Sandbox Code Playgroud)
根据上面的示例,我的想法应该是正确的,但似乎不正确(意外的令牌...)。我还能使用什么比这更有效的方法Object.keys().filter?
let arr1 = [{itemId:1, name:"item1"}, {itemId:2, name:"item2"},{itemId:3, name:"item3"}]
let arr2 = [{id:1, name:"item1"}, {id:2, name:"item2"}]
Run Code Online (Sandbox Code Playgroud)
如何arr1根据在arr2哪里arr1.itemId等于的匹配项进行过滤arr2.id
因此,在这种情况下的预期结果将是:
[{itemId:1, name:"item1"}, {itemId:2, name:"item2"}]
Run Code Online (Sandbox Code Playgroud)
我已经尝试过搜索,因此如果存在问题可以将我指向正确的方向,这将对您有所帮助
谢谢
javascript ×7
object ×2
react-native ×2
redux ×2
angular ×1
arrays ×1
dataframe ×1
ecmascript-6 ×1
jquery ×1
jsx ×1
matplotlib ×1
python ×1
python-3.x ×1
react-redux ×1
reactjs ×1
regex ×1
seaborn ×1
typescript ×1