reactjs - 在 React Native 的 const 中插入 if/else 语句的正确方法?
问题描述
我不断收到语法错误,我不确定如何以其他方式执行此操作:
const new_datas = [
if(this.state.username != '') {
{
name: "Plaza",
route: "TabNav",
icon: require("../img/plaza_party.png"),
bg: "#C5F442"
},
{
name: `${this.state.thefirstname}'s Profile`,
route: "ProfileScreen",
icon: require("../img/pass.png"),
bg: "#C5F442"
},
}
else{
{
name: "Plaza",
route: "TabNav",
icon: require("../img/plaza_party.png"),
bg: "#C5F442"
},
{
name: "Login/Sign Up",
route: "LoginScreen",
icon: require("../img/pass.png"),
bg: "#477EEA",
},
}
];
基本上应该发生的是,一旦用户名存储在状态,它应该更新内容然后从切换Login/Signup
到this.state.firstname Profile
. 有没有正确的方法来实现这一点?
编辑:额外代码:
<List
dataArray={new_datas}
renderRow={data =>
<ListItem
button
noBorder
onPress={() => this.props.navigation.navigate(data.route)}
>
<Left>
<Image
active
source={data.icon}
style={{ height: 50, width: 50 }}
/>
<Text style={styles.text}>
{data.name}
</Text>
</Left>
{data.types &&
<Right style={{ flex: 1 }}>
<Badge
style={{
borderRadius: 3,
height: 25,
width: 72,
backgroundColor: data.bg
}}
>
<Text
style={styles.badgeText}
>{`${data.types} Types`}</Text>
</Badge>
</Right>}
</ListItem>}
/>
一旦我登录,这部分就不会改变。
解决方案
我认为三元运算符是您所追求的:
const new_datas = props.username ? [
{
name: "Plaza",
route: "TabNav",
icon: require("../img/plaza_party.png"),
bg: "#C5F442"
},
{
name: `${this.state.thefirstname}'s Profile`,
route: "ProfileScreen",
icon: require("../img/pass.png"),
bg: "#C5F442"
}
]:[
{
name: "Plaza",
route: "TabNav",
icon: require("../img/plaza_party.png"),
bg: "#C5F442"
},
{
name: "Login/Sign Up",
route: "LoginScreen",
icon: require("../img/pass.png"),
bg: "#477EEA",
},
];
推荐阅读
- ios - typealias 泛型函数变量
- powerbi - Power BI DAX 从自定义日期获取上个月的值
- laravel - laravel post 方法不工作。虽然 GET 方法工作
- javascript - 如何使用钩子在组件状态下复制 Redux 存储?
- javascript - 如何将 Vue 变量设置为等于函数参数?
- javascript - 在 JavaScript 中使用 forEach() 函数调用 $el 时出现问题
- php - php日期比较问题,我尝试了很多日期,但它根本不起作用
- pine-script - 交易视图 / Pine 脚本平均高点和低点
- c - 如何将 sigaction 与 4 个子进程一起使用?
- docker - Docker Desktop 未启动 - 序列不包含匹配元素