我有一个名为data的变量,它是如下所示的对象数组,
data = [
{ attributes: [],
info: '',
meshes: [],
}
{attributes: [],
info: '',
meshes: [],
}
.....so on....
]
定义信息后,将显示可用的消息信息。如果信息undefined
将显示不可用的消息信息。
所以我在组件的渲染功能中像下面这样
export default class DataInfo extends React.Purecomponent {
state = {
data: null,
};
componentdidMount() {
load_data();
}
load_data = () => {
/*send a request to server for fetching data and
set data state */
}
render = () => {
return (
{this.loading &&
<div className="spinner"/>}
{!this.data || (this.data && this.data.every((data.info) =>
!data.info)) &&
<div>No info available</div>}
{this.data && this.data.some((data.info) => data.info) &&
<div>info available</div>}
);
}
}
现在附带条件而不是使用以下语句,
this.data.every((data.info) => !data.info)
this.data.some((data.info) => data.info)
我希望将它们定义为一些解释性变量,例如has_some_info
和has_no_info
。
所以要实现它,我尝试使用以下类似的渲染功能
const has_some_info = this.data ? this.data.some((data.info) =>
data.info): 'false';
const has_no_info = this.data ? this.data.every((data.info) =>
!data.info): 'false';
但这是不正确的。它不能正常工作..我不想初始化它以将变量初始化为false。...
有人可以帮我定义这些变量吗?...谢谢。
答案 0 :(得分:0)
export default class DataInfo extends React.Purecomponent {
state = {
data: null,
};
componentdidMount() {
load_data();
}
load_data = () => {
/*send a request to server for fetching data and
set data state */
}
render() {
const {loading, data = []} = this.state;
return (
{loading &&
<div className="spinner"/>}
{data.map(ele => ele.info
? <div>info available - {ele.info} </div>
: <div>No info available</div>
}
);
}
}
如果您需要用于信息的自我解释变量,则可以使用!! ele.info来给出是否存在数据。
答案 1 :(得分:0)
首先,您应该认识到String
和&str
是对立的,并且不必同时计算两者:
fn my_print<'a>(args: impl Iterator<Item = &'a str>) {
for arg in args {
println!("=> {}", arg);
}
}
fn main() {
let vec = vec!["one".to_string(), "two".to_string()];
my_print(vec.iter().map(|s| s.as_ref()));
}
换句话说:
every
(还请注意,我已经使用some
来访问数据)。