-
-
Notifications
You must be signed in to change notification settings - Fork 400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dynamic values don't work when using arrow functions #1619
Comments
So it seems that this is something to do with the return of the function, because if I put border: function({type}) {console.log(type); return 'red solid 1px';}, then the log works correctly, but ultimately the border value doesn't appear anywhere in the resulting CSS. |
Updated the original post with a sandbox. Now I really don't understand what's happening:
|
Been fighting this one for a day or two, thought I was going mad. Mine's happening in a custom webpack setup, but I've reproduced it with straight create-react-app and no styles within a function get rendered, until you change something in the component file and then its fine.
Repo is here: |
@ChrisKneller and anyone else who comes across this Looks like the issue was fixed in this PR: #1604 but it hasn't been released yet. Bumping |
If you remove If that's needed then upgrading |
The issue appears only with react 18, since react 18 introduces a new root api, https://blog.saeloun.com/2021/07/15/react-18-adds-new-root-api.html. For me helped change, to legacy Root api, in Create React applications: import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
reportWebVitals(); with import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
reportWebVitals(); |
@ChrisKneller version |
Expected behavior:
I expect CSS styling to be applied based on the dynamic values of properties I pass through with arrow functions in React.
Describe the bug:
Any JSS that uses arrow functions does not produce any CSS styling.
Reproduction:
Sandbox:
https://codesandbox.io/s/cool-cherry-5k2zn5?file=/src/components/Alert/Alert.js
As you can see, when the page first loads, this particular styling (red/green font and borders) does not feed through. However if we make any changes to the file then suddenly it does load. What's happening here?
From this tutorial here:
https://www.digitalocean.com/community/tutorials/how-to-style-react-components
Everything works until we get to this code:
The problem lies in the arrow functions, e.g.:
I have tried:
colors['success']
rather thancolors[type]
(just in case there was a problem withtype
)type
from the arrow function and just returning a string to check if I'm passing values through in the wrong way e.g.border: () => '#f56260 solid 1px',
No matter what I do, any line that includes an arrow function gets ignored and does not generate any CSS styling.
Versions (please complete the following information):
Feel free to add any additional versions which you may think are relevant to the bug.
The same seems to be happening here (though that's focussed on rtl and I don't know if that's exactly the same as what I'm using): #1234
The text was updated successfully, but these errors were encountered: