我有一个list(string)长度未知的,我想在我的 ReasonReact 组件中呈现。我读过没有对打印复杂数据结构的内置支持。但是,如何在不使用 Javascript 的情况下以纯函数方式在其组件中呈现列表呢?我找到了一个使用递归模式匹配来实现这一点的片段。我认为必须有一种更简单的方法,因为这似乎是一个相当常用的操作。
我想要实现的 Javascript 等价物是Array.toString().
我有一个list(string)长度未知的,我想在我的 ReasonReact 组件中呈现。我读过没有对打印复杂数据结构的内置支持。但是,如何在不使用 Javascript 的情况下以纯函数方式在其组件中呈现列表呢?我找到了一个使用递归模式匹配来实现这一点的片段。我认为必须有一种更简单的方法,因为这似乎是一个相当常用的操作。
我想要实现的 Javascript 等价物是Array.toString().
如果我理解正确,您需要完成两个步骤:
stringout of the list(string),最好以相同的方式格式化Array.toString,即逗号分隔,不带方括号,也不使用任何 JavaScript 特定的 API。这可以使用String.concat:
let myList = ["a", "b", "c"];
let myString = String.concat(", ", myList);
这将返回"a, b, c"
ReasonReact 中的渲染字符串是使用ReasonReact.string. items这是一个完整的、可运行的组件示例,该组件采用类型的 proplist(string)并将其呈现在<span>元素中。
module ListRenderer = {
let component = ReasonReact.statelessComponent("ListRenderer");
let make = (~items, _children) => {
...component,
render: _self =>
<span> {ReasonReact.string(String.concat(", ", items))} </span>
};
};
ReactDOMRe.renderToElementWithId(<ListRenderer items=["a", "b", "c"] />, "preview");