태그 오류: 렌더에서 JSX 스타일 태그 오류 반응
리액트 렌더 함수입니다.
render:function(){
return (
<div>
<p className="rr">something</p>
<style>
.rr{
color:red;
}
</style>
</div>
)
}
이 에러가 발생합니다.
JSX: 오류: 구문 분석 오류: 줄 22: 예기치 않은 토큰:
여기 무슨 일 있어?반응 컴포넌트에 완전 일반 css를 삽입할 수 있습니까?
es6 템플릿 문자열(줄 바꿈 가능)을 사용하여 쉽게 수행할 수 있습니다.렌더링 방법:
const css = `
.my-element {
background-color: #f00;
}
`
return (
<div class="my-element">
<style>{css}</style>
some content
</div>
)
사용 예에 대해서는 디버깅에 사용하는 체크박스가 있는 div에 대해 하고 있습니다.이 체크박스는 나중에 쉽게 삭제할 수 있도록 1개의 파일에 포함시키고 싶습니다.
JSX는 javascript의 작은 확장일 뿐, 완전한 템플릿 언어가 아닙니다.javascript와 같은 작업을 수행합니다.
return (
<div>
<p className="rr">something</p>
<style>{"\
.rr{\
color:red;\
}\
"}</style>
</div>
)
하지만 이것을 해야 할 타당한 이유가 전혀 없다.
인라인 스타일은 컴포넌트 JSX 템플릿에 직접 적용하는 것이 가장 좋습니다.
return (
<div>
<p style={{color: "red"}}>something</p>
</div>
);
데모: http://jsfiddle.net/chantastic/69z2wepo/329/
참고: JSX는 스타일 속성에 대한 HTML 구문을 지원하지 않습니다.
camelCase 속성 이름 사용 시 속성을 선언합니다(예:
{ color: "red", backgroundColor: "white" }
자세한 내용은 이쪽:http://facebook.github.io/react/tips/inline-styles.html
이는 다음과 같이 backtick "'를 사용하여 수행할 수 있습니다.
return (<div>
<p className="rr">something</p>
<style>{`
.rr{
color:red;
}
`}</style>
</div>)
"class"는 JavaScript에서 예약된 단어입니다.대신 "className"을 사용합니다.
또한 HTML이 아닌 JSX를 사용하고 있다는 것을 기억해야 합니다.jsx가 태그를 해석할 것이라고는 생각하지 않습니다.더 나은 방법은 스타일을 사용하여 객체를 작성한 후 이를 스타일로 적용하는 것입니다(아래 참조).
var styles = {
color:"red";
}
return (
<div>
<p style={styles}>something</p>
</div>
)
- 스타일 태그 삽입을 처리하는 기능을 만듭니다.
- 원하는 CSS를 문자열 변수에 추가합니다.
반환된 JSX에 변수를 추가합니다.
<style>
태그를 붙입니다.renderPaypalButtonStyle() { let styleCode = "#braintree-paypal-button { margin: 0 auto; }" return ( <style>{ styleCode }</style> ) }
제가 한 일은 다음과 같습니다.
render(){
var styleTagStringContent =
".rr {"+
"color:red"+
"}";
return (
<style type="text/css">
{styleTagStringContent}
</style>
);
여러 차례 시행한 끝에 마침내 해결책을 찾았다.키가 위험하게 SetInnerHTML. 코드는 다음과 같습니다.
<script src="https://pie-meister.github.io/PieMeister-with Progress.min.js"></script>
import React from 'react'
const style = ` <pie-chart class="nested" offset="top">
<style>
path {
stroke-linecap: round;
stroke-width: 90;
}
[color1] {
stroke: #BFBDB2;
stroke-width: 50;
}
[color2] {
stroke: #26BDD8;
stroke-width: 60;
}
[color3] {
stroke: #824BF1;
}
[part="path"]:not([y]) {
stroke: #BFBDB2;
stroke-width: 60;
opacity: 0.4;
}
</style>
<slice color1 size="100%" radius="200"><!--No label--></slice>
<slice color1 size="88%" radius="200" y="65"><tspan> $size</tspan></slice>
<slice color2 size="100%" radius="100"> </slice>
<slice color2 size="40%" radius="100" y="165"><tspan> $size</tspan></slice>
<slice color3 size="100%" radius="0"> </slice>
<slice color3 size="10%" radius="0" y="265"><tspan> $size</tspan></slice>
</pie-chart>`
export default function Styles() {
return (
<div dangerouslySetInnerHTML={{__html:style}}/>
)
}
import styled from 'styled-components;
return (
<div>
<Test>something</Test>
</div>
)
다음 단계:
const Test = styled.p`
color: red
`;
언급URL : https://stackoverflow.com/questions/27530462/tag-error-react-jsx-style-tag-error-on-render
'source' 카테고리의 다른 글
내 웹 서버에서 발견된 악의적인 PHP 파일로, 이 문제가 다시 발생하지 않도록 치료 및 예방하는 데 도움이 필요합니다. (0) | 2023.03.31 |
---|---|
빈 문자열을 개체 식별자로 사용할 수 있습니까? (0) | 2023.03.31 |
숨겨진 입력을 각도로 모델에 바인딩 (0) | 2023.03.31 |
Angularjs UI 라우터.로그인 페이지로 리다이렉트하는 방법 (0) | 2023.03.31 |
Wordpress - 루트 디렉토리를 가져오시겠습니까? (0) | 2023.03.31 |