import styled from 'styled-components';
import {Link} from 'react-router-dom';
const LS = {};
LS.NavFixedItem_LINK = styled(Link)`
display: flex;
justify-content: ${props => props.tempLeftProp ? 'flex-start' : 'center'};
align-items: center;
`;
function NavFixedItem(props) {
return(
<LS.NavFixedItem_LINK to={props.link} tempLeftProp={props.toLeft}>
{props.name}
</LS.NavFixedItem_LINK>
);
}
エラーが発生します:
警告: ReactはDOM要素の
tempLeftProp
プロップを認識しません。意図的にDOMにカスタム属性として表示したい場合は、代わりに小文字templeftprop
を使用してください。誤って親コンポーネントから渡した場合は、DOM要素から削除してください。
私は常にスタイル付きコンポーネントに小道具を渡します。問題が通常のHTML要素ではなくコンポーネントLink
をスタイリングしていることが問題であるかどうかはわかりません。
[〜#〜]質問[〜#〜]
このエラーが発生するのはなぜですか?無視しても安全ですか?
PS:スタイルは意図したとおりに適用されています。
リアクションリンクタグで「to」プロップを試す別の方法として、文字列またはオブジェクトの2つの異なる値を使用できます。
/users/123
(相対パスはサポートされていません)。オブジェクトの場合、4つのキーを持つことができます。
key:value
ペアのオブジェクト。#a-hash
。上記のコードは次のように表すことができます:
import styled from 'styled-components';
import {Link} from 'react-router-dom';
const LS = {};
LS.NavFixedItem_LINK = styled(Link)`
display: flex;
justify-content: ${props => props.to.state.tempLeftProp ? 'flex-start' : 'center'};
align-items: center;
`;
function NavFixedItem(props) {
return(
<LS.NavFixedItem_LINK to={{ pathname: props.link, state: {tempLeftProp: props.toLeft} }}>
{props.name}
</LS.NavFixedItem_LINK>
);
}