Signal is not passed properly to the value attribute when passed into a component via props and accessed using dot notation. ie: `props.$value`
zachlankton opened this issue · comments
Describe the bug
Signal is not passed properly to the value attribute when passed into a component via props and accessed using dot notation. ie: props.$value
To Reproduce
function NumInput(props) {
return <input type="number" value={props.$count} />;
}
export function Page() {
let $myCount = 10;
return (
<>
<h1>Input Value Attribute Passed with dot notation</h1>
<NumInput $count={$myCount} />
<p>{$myCount}</p>
</>
);
}
Gets transformed into this:
![image](https://private-user-images.githubusercontent.com/2927894/272279535-31497cf0-db3f-4057-b90a-24b4770cb4aa.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NTU0NzIsIm5iZiI6MTcxOTg1NTE3MiwicGF0aCI6Ii8yOTI3ODk0LzI3MjI3OTUzNS0zMTQ5N2NmMC1kYjNmLTQwNTctYjkwYS0yNGI0NzcwY2I0YWEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MDFUMTczMjUyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MjI3NDIwYThjZDU3OTYxNWVmZTliOWEwMzU5NzM2NDcyODkyMDkwNjcxYWE3NDI3ZWY0NWY3NThlMTcwYjUxOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.pVsiGsg5jwibxCyIk7fM3X9OqjUpVCVQZvK6wVRWAlA)
Expected behavior
The .get()
call should not be appended to this value... it needs to be passed in as is.
Additional context
This does not happen when the props are destructured like this:
function NumInput2({ $count }) {
return <input type="number" value={$count} />;
}
The output is correct:
![image](https://private-user-images.githubusercontent.com/2927894/272280551-ba23102c-52b3-4787-9eda-354ed5238d4a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NTU0NzIsIm5iZiI6MTcxOTg1NTE3MiwicGF0aCI6Ii8yOTI3ODk0LzI3MjI4MDU1MS1iYTIzMTAyYy01MmIzLTQ3ODctOWVkYS0zNTRlZDUyMzhkNGEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MDFUMTczMjUyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NmZiMDI4YWM3OTk3ZGE2ZWQ0MDdlMjYzNTg5ZmI3NmJmMGQxMTExY2M0ZDlhMGYzMzc0M2JlYzg5ZmZlYmFjYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.LN90qRQSmkDf7uUtTK6oSreU834S5s_E2lUuVZQIIsM)