几分钟前我在Codeacademy上练习了一些JavaScript,我发现了一些令人困惑的东西.这是代码:
var friends = {};
friends.bill = {
firstName: "Bill",
lastName: "Gates",
number: "(206) 555-5555",
address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
firstName: "Steve",
lastName: "Jobs",
number: "(408) 555-5555",
address: ['1 Infinite Loop','Cupertino','CA','95014']
};
var list = function(obj) {
for(var prop in obj) {
console.log(prop);
}
};
var search = function(name) {
for(var prop in friends) {
if(friends[prop].firstName === name) {
console.log(friends[prop]);
return friends[prop];
}
else {
return "contact not found";
}
}
};
list(friends);
search("Steve");
Run Code Online (Sandbox Code Playgroud)
问题是,当我在搜索功能中将字符串"Steve"作为arg传递时,它返回条件"未找到联系人",而当我在同一搜索功能中将字符串"Bill"作为arg传递时,它显示联系信息.
怎么可能?我究竟做错了什么?
我已经构建了一个公共路由组件,用于登录以在用户未通过身份验证时显示。每当未登录的用户单击受保护的路由时,他将被重定向到登录页面,他可以在其中输入凭据。我想要一种编程方式,以便如果他使用正确的凭据登录,他应该被重定向到他首先尝试访问的页面。例如,如果用户请求个人资料页面,他应该在登录后重定向到该页面,如果用户请求设置页面,也会发生同样的情况。
截至目前,我只能将它们重定向到 home path /。有什么方法可以使用重定向,以便它知道用户请求的路径?
这是我当前的公共路由组件代码
export const PublicRoute = ({
isAuthenticated,
component: Component,
...rest
}: PublicRouteProps) => (
<Route
{...rest}
component={(props: any) => {
console.log(props.path);
return isAuthenticated.auth ? (
<Redirect to='/' />
) : (
<div>
<Component {...props} />
</div>
);
}}
/>
);
const mapStateToProps = (state: ReduxStoreState) => ({
isAuthenticated: state.isAuthenticated
});
export default connect(mapStateToProps)(PublicRoute);
Run Code Online (Sandbox Code Playgroud)