我有一个react组件,我试图将输入框放在日历的右边。
class PayrollComponent extends Component {
constructor(props) {
super(props);
this.state = {
val: 0,
};
}
componentDidUpdate() {
const inputElement = document.createElement("input");
inputElement.setAttribute("type", "time");
inputElement.setAttribute("className", "test");
inputElement.style.margin = "10px";
const inputContainer = document.getElementById("inputContainer");
const br = document.createElement("br");
// const textNode = document.createTextNode(" ");
inputContainer.appendChild(inputElement);
inputContainer.appendChild(inputElement);
// inputContainer.appendChild(textNode);
if ((this.state.val % 2 === 0) | (this.state.val === 2)) {
inputContainer.appendChild(br);
}
console.log("Component updates by this many times: " + this.state.val);
}
render() {
return (
<div>
<span>
<CalendarComponent className="test" daysSelected={(days) => this.setState({ val: days + 1 })} /> <div id="inputContainer"></div>
</span>
<span>
<div id="inputContainer" className="test"></div>
</span>
<p> {this.state.val} </p>
</div>
);
}
}
export default PayrollComponent;
我在react中把两个span元素放在一起,但是它们在dom中并不是这样显示的。我以为这样会把日历和输入框放在一起呢?我附上了一个截图,显示.
我尝试将日历组件和输入容器 Package 在span标记中,以为这样会使它们内联
1条答案
按热度按时间b09cbbtk1#
首先,任何元素的
display
CSS属性决定了它的布局方式。<span>
和<div>
都有相应的默认值,但它们可以更改。从示例中无法判断它们是否是默认值。但即使假设它们不是默认值,您也没有说明<CalendarComponent>
是什么。如果它是块级元素,那么它是否在span中并不重要。它会有自己的区块。将它的display
变更为其他值(例如inline-block
)可能会有帮助。请参阅: