Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在JSX中呈现布尔值?_Javascript_Reactjs_React Jsx - Fatal编程技术网

Javascript 无法在JSX中呈现布尔值?

Javascript 无法在JSX中呈现布尔值?,javascript,reactjs,react-jsx,Javascript,Reactjs,React Jsx,我试图在JSX中呈现布尔值,但是React将其作为表达式进行计算,并且在返回组件后不会返回任何内容 有解决办法吗 这里有一个例子 var ipsumText = true; ReactDOM.render( <div> Boolean Value: {ipsumText} </div>, document.getElementById('impl') ); var ipsumText=true; ReactDOM.render( 布尔值:{

我试图在JSX中呈现布尔值,但是React将其作为表达式进行计算,并且在返回组件后不会返回任何内容

有解决办法吗

这里有一个例子

var ipsumText = true;

ReactDOM.render(
  <div>
     Boolean Value:    {ipsumText}
  </div>,
  document.getElementById('impl')
);
var ipsumText=true;
ReactDOM.render(
布尔值:{ipsumText}
,
document.getElementById('impl')
);
仅将编译后的HTML显示为

<div data-reactid=".0"><span data-reactid=".0.0">Boolean Value:    </span></div>
布尔值:
编辑:下面是示例的JSBin链接


编辑2:我已经探索了.toString()替代方法,但是因为我正在迭代对象数组,并且该对象的特定字段可以具有字符串/整数/布尔类型的值。将.toString()应用于所有字符串似乎不是最佳选择。

您可以将布尔值转换为字符串,并将其与空字符串连接:

var ipsumText = true;

ReactDOM.render(
  <div>
     Boolean Value: {ipsumText + ''}
  </div>,
  document.getElementById('impl')
);
如果变量不能具有布尔值,则应将其转换为布尔值:

// `ipsumText` variable is `true` now.
var ipsumText = !!'text';

我更喜欢第二种选择。通用、快速,适用于所有基本类型:
Boolean(smth)
Number(smth)


{${row.feature\u product}}
{${row.feature_product?false:true}`${row.feature_product?true:false}}

如果该值不是布尔值,我希望按原样显示它。在这种情况下,请使用以下条件:
var ipsumText=typeof value=='boolean'?价值+'':价值当我们将变量转换为字符串时,我们正在检查变量是否为布尔值,否则将按原样显示。“将.toString()应用于所有变量似乎不是最优的”--然后使用
{string(value)}
。没有什么比这更完美、更普遍了。请解释你的答案。为什么我们需要进行类型转换?为什么不能直接显示布尔值?React不允许对象作为值,但会显示除未定义值和null之外的实际值。我相信它是在引擎盖下使用
toString
,但为什么react不会这样做呢?@Naren Angular在这方面的工作原理与Vue相同,我认为这是理想的默认行为。
// `ipsumText` variable is `true` now.
var ipsumText = !!'text';
Boolean Value: { ipsumText.toString() }
Boolean Value: { String(ipsumText) }
Boolean Value: { '' + ipsumText }
{`Boolean Value: ${ipsumText}`}
Boolean Value: { JSON.stringify(ipsumText) }