Javascript 如何将中的字符串点符号转换为对象引用,而不是嵌套
我在Javascript 如何将中的字符串点符号转换为对象引用,而不是嵌套,javascript,string,object,notation,Javascript,String,Object,Notation,我在react中映射一个数组,以获得jsx和的列表,但每个元素都有自己的样式,与结果元素相匹配。如何将字符串名称转换为对象引用 render() { const elements = this.props.elements; console.log('render ' + this.props.selected) const elementList = elements.map(**elem** => ( < div key={elem} c
react
中映射一个数组,以获得jsx
和
的列表,但每个元素都有自己的样式,与结果元素相匹配。如何将字符串名称转换为对象引用
render() {
const elements = this.props.elements;
console.log('render ' + this.props.selected)
const elementList = elements.map(**elem** => (
< div key={elem} className={styles.Inputs} >
<label className={styles.{**elem**}}>
<span className={this.state.selected === elem ? styles.red : styles.gray}></span>
<input
type="radio"
name="react-tips"
value={elem}
extra={this.state.selected}
checked={this.state.selected === elem}
onChange={this.handleOptionChange}
className="form-check-input"
/>
</label>
</div >
))
return (
<div>
{elementList}
</div>
)
render(){
常量元素=this.props.elements;
console.log('render'+this.props.selected)
常量元素列表=元素。映射(**elem**=>(
))
返回(
{elementList}
)
如果我误解了这个问题,希望这有助于告诉我
希望这有助于告诉我,如果我误解了这个问题你可以这么做
<label className={styles[**elem**]}>
您可以简单地执行此操作
<label className={styles[**elem**]}>
如果要设置对象属性并动态获取值,可以使用[](第三个括号)而不是。(点)。在您的情况下,应该使用[](第三个括号)
<label className={styles[**elem**]}>
如果您想使用loop(只是一个示例)动态地获取值,您可以这样获得它
let obj = {
1: 'One',
2: 'Two',
3: 'Three'
}
for(let i = 1; i <= Object.keys(obj).length; i++) {
console.log(obj[i]);
}
// Output
// 'One'
// 'Two'
// 'Three'
for(设i=1;i如果要设置对象属性并动态获取值,可以使用[](第三个括号)而不是。(点)。在您的情况下,应该是
<label className={styles[**elem**]}>
如果您想使用loop(只是一个示例)动态地获取值,您可以这样获得它
let obj = {
1: 'One',
2: 'Two',
3: 'Three'
}
for(let i = 1; i <= Object.keys(obj).length; i++) {
console.log(obj[i]);
}
// Output
// 'One'
// 'Two'
// 'Three'
for(让i=1;i这个问题解决了伙计们。我只是使用标准的css导入文件来跳过css模块中的点符号,虽然不完美,但效果很好。谢谢大家
import React,{Component}来自'React';
从“./InputsRadio.module.css”导入样式;
导入“./styles.css”;
导出默认类列表扩展组件{
状态={
要素:[],
所选:空
}
状态={
};
handleOptionChange=事件=>{
这是我的国家({
所选:event.target.value
});
};
componentDidMount(){
const selected=this.props.selected;
这是我的国家({
已选:已选
});
}
render(){
常量元素=this.props.elements;
console.log('render'+this.props.selected)
常量elementList=elements.map(elem=>(
{console.log(样式[elem])}
))
返回(
{elementList}
)
}
}
问题解决了。我只是使用标准的css导入文件跳过css模块中的点符号,虽然不完美,但效果很好。谢谢大家
import React,{Component}来自'React';
从“./InputsRadio.module.css”导入样式;
导入“./styles.css”;
导出默认类列表扩展组件{
状态={
要素:[],
所选:空
}
状态={
};
handleOptionChange=事件=>{
这是我的国家({
所选:event.target.value
});
};
componentDidMount(){
const selected=this.props.selected;
这是我的国家({
已选:已选
});
}
render(){
常量元素=this.props.elements;
console.log('render'+this.props.selected)
常量elementList=elements.map(elem=>(
{console.log(样式[elem])}
))
返回(
{elementList}
)
}
}
Hi Luis,检查我的解决方案并让我知道这是否有帮助。内联样式对我无效,因为我使用的是伪符号(:before)。因此我正在实现css模块。Hi Luis,检查我的解决方案并让我知道这是否有帮助。内联样式对我无效,因为我使用的是伪符号(:before)。因此,我正在实现css模块。对不起,我没有工作,我在使用css模块。这是我的完整代码:Object的工作方式与我提到的完全相同,可能是你有不同的问题。对不起,我没有工作,我在使用css模块。这是我的完整代码:Object的工作方式与我提到的完全相同,可能是你有不同的问题。对不起,我没有工作e、 我在使用css模块这是我的完整代码:对不起,我不工作,我在使用css模块这是我的完整代码:对不起,我不工作,我没有使用内联样式,我在使用css模块。这是我的完整代码:github.com/luifo/input-radio-with-icon-react.git对不起,我不工作,我没有使用内联样式,我在使用css模块d、 以下是我的完整代码:github.com/luifo/input-radio-with-icon-react.git