Just use Object.values rather than keys.
authorRobert Sesek <rsesek@bluestatic.org>
Sun, 15 Mar 2020 01:02:20 +0000 (21:02 -0400)
committerRobert Sesek <rsesek@bluestatic.org>
Sun, 15 Mar 2020 01:02:20 +0000 (21:02 -0400)
Something is not working right (re-render does not occur) if you switch forms
and there were shared keys.

src/FormView.tsx

index 4ad7f96bf5b1749c1c3242ca81c37c043588d88e..9e81ccdff1d00a338a0902b5f7518f1588a7ff49 100644 (file)
@@ -15,15 +15,15 @@ interface FormProps {
 }
 
 export default function FormView(props: FormProps) {
-  const lineKeys = createMemo(() => Object.keys(props.form.lines));
+  const lines = createMemo(() => Object.values(props.form.lines));
 
   return (
     <>
       <h2 class={S.formName}>Form {props.form.name}</h2>
 
       <table class={S.table}>
-        <For each={lineKeys()}>
-          {key => <Line tr={props.tr} line={props.form.lines[key]} />}
+        <For each={lines()}>
+          {line => <Line tr={props.tr} line={line} />}
         </For>
       </table>
     </>