Я хочу создать привязку библиотеки Plotly.js к Fable.
Я смотрю на этот код JS
import React from 'react';
import Plot from 'react-plotly.js';
class App extends React.Component {
render() {
return (
<Plot
data={[
{
x: [1, 2, 3],
y: [2, 6, 3],
type: 'scatter',
mode: 'lines+points',
marker: {color: 'red'},
},
{type: 'bar', x: [1, 2, 3], y: [2, 5, 3]},
]}
layout={ {width: 320, height: 240, title: 'A Fancy Plot'} }
/>
);
}
}
и моя (ошибочная) попытка создания простой тестовой привязки выглядит следующим образом
open Fable.Core
open Fable.Core.JsInterop
open Browser.Types
open Fable.React
// module Props =
type Chart =
|X of int list
|Y of int List
|Type of string
type IProp =
| Data of obj list
let inline plot (props: IProp) : ReactElement =
ofImport "Plot" "react-plotly.js" props []
let myTrace = createObj [
"x" ==> [1,2,3]
"y" ==> [2,6,3]
"type" ==> "scatter"
"mode" ==> "lines"
]
let myData = Data [myTrace]
let testPlot = plot myData
Но, очевидно, это не работает. Как мне заставить его работать? Кроме того, что означает {[...]}
? Я новичок в Javascript, и, насколько я знаю, {...
} обозначает объект, который должен содержать пары имя-значение, а [...]
обозначает массив. Так что {[...]}
, кажется, обозначает объект с одним безымянным членом, который является массивом, но, насколько я знаю, нет объектов с безымянными членами.