Thought I'd tried out everything before asking this question, but apparently not. Here's the way to do it:
import { render } from "solid-js/web";
import { Router, Route,createAsyncStore } from "@solidjs/router";
let ShowDocs = props => (
<p>
doc1: {props.doc1.a} <br/>
doc2: {props.doc2.a} <br/>
doc3: {props.doc3.a} <br/>
</p>
);
let Main= props => {
const docs = {};
for (let i=1; i<=3; i++)
docs['doc'+i] = createAsyncStore(() => ({a:'blah'+i}));
const docs2 = () => {
const ds = {};
for (let i=1; i<=3; i++)
ds['doc'+i] = docs['doc'+i]();
return ds;
}
return (
<div>
WORKS: <ShowDocs doc1={docs.doc1()} doc2={docs.doc2()} doc3={docs.doc3()} />
BUT IS THERE A WAY TO DO SOMETHING LIKE THIS?
<ShowDocs {...docs2()} />
</div>
);
}
render(() => <Router><Route path="/*" component={Main} /></Router>, document.getElementById("app")!);